如何正确将 JSON 文件转换为 Pandas 数据框?

问题描述 投票:0回答:1

我有一个名为“values.json”的 JSON 文件,其中包含以下内容:

{
  "values": [{
    "id": 2,
    "value": "passed"
  }, {
    "id": 41,
    "value": "passed"
  }, {
    "id": 73,
    "value": "passed"
  }, {
    "id": 110,
    "value": "failed"
  }, {
    "id": 122,
    "value": "failed"
  }, {
    "id": 234,
    "value": "passed"
  }, {
    "id": 238,
    "value": "passed"
  }, {
    "id": 345,
    "value": "passed"
  }, {
    "id": 653,
    "value": "passed"
  }, {
    "id": 690,
    "value": "failed"
  }, {
    "id": 5321,
    "value": "passed"
  }, {
    "id": 5322,
    "value": "failed"
  }]
}

我尝试使用下一个代码将其转换为数据框:

values_path = "values.json"
df = pd.read_json(values_path)
with open(values_path) as f:
    d = json.load(f)
df = pd.json_normalize(d)
print(df)

但是,我得到的是一列一行的表格:

                                              values
0  [{'id': 2, 'value': 'passed'}, {'id': 41, 'val...

我想要的输出是这样的:

id 价值
0 2 通过了
1 41 通过了
2 73 通过了

我做错了什么?或者我的 JSON 文件有问题?我将不胜感激任何帮助!

python json pandas
1个回答
0
投票

您想要的数据就在

values
键内,所以您只需选择它即可:

df = pd.json_normalize(d['values'])
      id   value
0      2  passed
1     41  passed
2     73  passed
..   ...     ...
9    690  failed
10  5321  passed
11  5322  failed

[12 rows x 2 columns]
© www.soinside.com 2019 - 2024. All rights reserved.