for path data. Must be list or null.错误

省流:换思路解决了

背景:用pandas解析json,使用json_normalize()方法时报错for path data. Must be list or null.

json格式如下

{
    "data": {
        "page": 0,
        "size": 10,
        "total": 54,
        "data": [
            {
                "agrType": 1,
                "tradeDate": "20221220",
                "value": "0.9931628055522528",
                "ifShow": "1",
                "showName": "银行",
                "showYield": 23.064958,
                "showYieldDesc": "成立以来收益率"
            }
        ]
    },
    "msg": "ok",
    "retcode": 0
}

使用某鸟网示例代码,出现报错,报错代码:

import pandas as pd
import json

# 使用 Python JSON 模块载入数据
with open('银行1.json','r') as f:
    data = json.loads(f.read())

# 展平数据
df_nested_list = pd.json_normalize(data, record_path =['data'])
print(df_nested_list)

报错:json原文 +  ‘for path data. Must be list or null.’

 本人没查到对应的解决方案,推测是嵌套数据的格式问题,换思路解决:

直接在Dataframe数据时取第二层

import json
import pandas as pd

filepath = '银行6.json'

# 使用 Python JSON 模块载入数据
with open(filepath,'r',encoding='utf-8') as f:
    jsondata = json.loads(f.read())

#直接DataFrame数据
    json_toDataframe = pd.DataFrame(jsondata['data']['data'])
   
print(json_toDataframe)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值