【问题标题】:Convert simple JSON to pandas dataframe将简单 JSON 转换为 pandas 数据框
【发布时间】:2021-03-01 19:57:38
【问题描述】:

我是 Python 新手,我正在尝试将以下 JSON 转换为熊猫框架。

json的格式如下。我减少了列和行。大约有 8 列,每个 json 大约有 20000 行

{
   "DataFeed":[
      {
         "Columns":[
            {
               "Name":"customerID",
               "Category":"Dimension",
               "Type":"String"
            },
            {
               "Name":"InvoiceID",
               "Category":"Dimension",
               "Type":"String"
            },
            {
               "Name":"storeloc",
               "Category":"Dimension",
               "Type":"String"
            }
         ],
         "Rows":[
            {
               "customerID":"id128404805",
               "InvoiceID":"IN3956",
               "storeloc":"TX359"
            },
            {
               "customerID":"id128404806",
               "InvoiceID":"IN0054",
               "storeloc":"CA235"
            },
            {
               "customerID":"id128404807",
               "InvoiceID":"IN7439",
               "storeloc":"AZ2309"

            }
         ]
      }
   ]
}

我正在尝试将其加载到熊猫数据框中。 json文件中的列数相同。行数在10000左右。

我正在尝试在某些计算后进入行并插入到表中。

我正在尝试使用 json_normalize,但我正在努力导航到 Rows 级别并在此之后进行规范化。我知道这一定是一个问题解决方案,但我对使用 Json 很陌生。谢谢

【问题讨论】:

  • DataFeed 看起来不像是有效的 JSON 字符串。可以验证吗?
  • 我已经修改了 JSON 字符串。一个尾随逗号已被删除。
  • 您是否尝试过类似的方法?:pd.DataFrame.from_dict(json_data['DataFeed'][0]['Rows'])json_data 包含您在上面发布的 JSON 字符串(在本例中为 python 字典)。

标签: python json pandas


【解决方案1】:

尝试 pd.json_normalize()record_path 参数。

注意,您需要 pandas 0.25 或更高版本。

假设你的 json 对象是j

df = pd.json_normalize(j,record_path=['DataFeed','Rows'])
print(df)
    customerID InvoiceID storeloc
0  id128404805    IN3956    TX359
1  id128404806    IN0054    CA235
2  id128404807    IN7439   AZ2309

【讨论】:

    猜你喜欢
    • 2019-05-14
    • 2019-07-01
    • 2021-12-13
    • 2020-10-31
    • 2020-09-02
    • 2020-02-29
    • 2017-03-21
    • 2020-12-16
    • 2021-02-09
    相关资源
    最近更新 更多