【问题标题】:How to create colums from one very large nested list?如何从一个非常大的嵌套列表中创建列?
【发布时间】:2018-08-20 21:59:47
【问题描述】:

好的,所以我有一个文本文件,我已经将它导入 python 并且在这样做时遇到了一些困难,因为其中的数据来自使用包装器的 api,并且在在线阅读它之后,我将它加载如下方式:

save_path = 'C:/path'
name_of_file = "all_transactions"
completename = os.path.join(save_path, name_of_file+ '.txt')
raw_file = io.open(completename, 'r', encoding= "utf-8" )

现在似乎可以正常加载了。看起来是这样的:

 49021
 <class 'list'>
 ["{'cursor':'longcode'    'currency': 'USD'},\n", "                                'card_details': {'card': {'billing_address': None,\n", "  

“列表”非常长,其中包含很多标题。当我将它放入 pandas DataFrame 时,这就是我得到的:

                                                       0
0      {'cursor': 'CAESzgEaGQoNOFJYS1lFMlg2WlBUUBABEA...
1                                      'errors': None,\n
2                 'transactions': [{'client_id': None,\n
3                         'created_at': '2018-03-12T1...

一路下降到 49020 行,一列。 “交易”和“光标”是我相信的两个关键。我需要像“在列标题中创建的其他项目及其在行中的数据,如下所示:

created_at customer_id
alldates   theidshere
...        ...
...        ...

我真的不知道该怎么做,我已经尝试过搜索

请帮忙! 谢谢

【问题讨论】:

  • 欢迎来到 SO。不幸的是,这不是一个讨论论坛或教程。请花时间阅读How to Ask 和该页面上的其他链接。花一些时间与the Tutorial 一起练习示例。它将让您了解 Python 提供的帮助您解决问题的工具。 “Can someone help me?” not an actual question?.
  • 如果您可以确定文件中的某些结构,您可能只想逐行遍历它并挑选出您需要的部分并将它们放入字典之类的东西中。
  • api 文档是否提到了数据的结构?是 JSON 吗?
  • 它是 json 但由于某种原因没有正确加载 json
  • 我试过json.loads和json.dumps,还是不行

标签: python pandas dataframe data-science


【解决方案1】:

首先,看起来你那里有 json 数据。 http://www.json.org/ Python 有一个用于加载该数据的内置库。 https://docs.python.org/3.6/library/json.html

要加载它,代码如下所示

import json
with open(completename, 'r') as f:
  data = json.load(f)

现在要获取所有列名,您可以查看每个对象并聚合它们的键

column_names = set()
for item in data:
  for column in item:
    column_names.add(column)

之后所有的列名都将在 column_names 集中

【讨论】:

  • 感谢您的回复!我收到一个 TypeError 说 JSON 对象必须在 str、bytes 或 byte 数组中,这显然是有道理的。这里的问题是它在 TextIOWrapper 中。
  • 您在 open 语句或 raw_file 中使用的是完整名称吗?全名应该没问题
  • 使用完整名称,当我在 open 语句中包含 .json 时出现属性错误。 str 没有属性 json
  • 你这样做是不是不小心completename.json
  • 搞砸了,我说它毕竟不是 json:
猜你喜欢
  • 1970-01-01
  • 2021-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 2022-01-19
  • 2015-08-18
相关资源
最近更新 更多