【问题标题】:Not able to parse JSON file with Pandas无法使用 Pandas 解析 JSON 文件
【发布时间】:2020-10-03 21:33:32
【问题描述】:
df=pd.read_json("https://api.covid19india.org/state_district_wise.json")
df

ab = df.transpose()
ab

我正在尝试从此 api 解析 DistrictData,但我无法做到。该列在单引号中包含键值数据,并且在解析时出错。

如果有人可以帮助我解决这个问题,那将非常有帮助。

【问题讨论】:

  • 我刚刚得到数据并对其使用了 JSON 验证,它通过了。这可能只是他们的 API 中的错误已修复?

标签: python json pandas parsing


【解决方案1】:

如果我对您的理解正确,您正在寻找以下内容。而且你不需要通过 pandas:

import requests
import json
from jsonpath_ng import jsonpath, parse

req = requests.get('https://api.covid19india.org/state_district_wise.json')
dat = json.loads(req.text)
j_ex = parse('[*]..districtData')
for match in j_ex.find(dat):
    print(match.value)

输出:

{'Unassigned': {'notes': '', 'active': 7955, 'confirmed': 7955, 'deceased': 0, 'recovered': 0, 'delta': {'confirmed': 0, 'deceased': 0, 'recovered': 0}}}
{'Nicobars': {'notes': '', 'active': 0, 'confirmed': 0, 'deceased': 0, 'recovered': 0, 'delta': {'confirmed': 0, 'deceased': 0, 'recovered': 0}}, 'North and Middle Andaman': {'notes': '', 'active': 0, 'confirmed': 1, 'deceased': 0, 'recovered': 1, 'delta': {'confirmed': 0, 'deceased': 0, 'recovered': 0}}, 'South Andaman': {'notes': '', 'active': 0, 'confirmed': 32, 'deceased': 0, 'recovered': 32, 'delta': {'confirmed': 0, 'deceased': 0, 'recovered': 0}}, 'Unknown': {'notes': '', 'active': 5, 'confirmed': 5, 'deceased': 0, 'recovered': 0, 'delta': {'confirmed': 0, 'deceased': 0, 'recovered': 0}}}

等等

【讨论】:

  • 嗨,杰克,感谢您的回复。我实际上能够做到这一点。但是,我想以 pandas 数据框的形式修改您提到的上述输出。 JSON 格式包含印度每个州的地区名称。我想提取所有地区数据。
  • @ChinmayJape 我不确定我是否理解。您可以编辑您的问题并添加一个示例,说明您的预期输出来自数据样本吗?
  • 我对 JSON 数据进行了规范化并创建了一个数据框。问题得到解决。但是您解析数据的方法非常有帮助。再次感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-20
  • 2018-06-03
  • 2017-07-19
  • 1970-01-01
  • 2012-05-10
相关资源
最近更新 更多