python - 尝试从 json 解析值时出现类型错误

标签 python json pandas

我有这个Json(代码中间的...是为了减少这个问题中Json的数量,完整的Json在这里https://pastebin.com/acKCSq8D):

[
  {
    "columnHeader": {
      "dimensions": [
        "ga:city"
      ],
      "metricHeader": {
        "metricHeaderEntries": [
          {
            "name": "ga:users",
            "type": "INTEGER"
          }
        ]
      }
    },
    "data": {
      "rows": [
        {
          "dimensions": [
            "(not set)"
          ],
          "metrics": [
            {
              "values": [
                "984"
              ]
            }
          ]
        },
        {
          "dimensions": [
            "Sao Paulo"
          ],
          "metrics": [
            {
              "values": [
                "555"
              ]
            }
          ]
        },
        ...
        {
          "dimensions": [
            "Xanxere"
          ],
          "metrics": [
            {
              "values": [
                "1"
              ]
            }
          ]
        }
      ],
      ...
    }
  }
]

我正在尝试获取项目“尺寸”和“值”,但使用以下代码:

import json
import pandas as pd

with open('test.json') as f:
    raw_json = json.load(f)

for i in raw_json:
        print(i['data']['rows']['dimensions'])

我收到此错误:

Traceback (most recent call last):
  File "C:\Users\gusta\Desktop\Projects\papai\test.py", line 10, in <module>
    print(i['data']['rows']['dimensions'])
TypeError: list indices must be integers or slices, not str

如何提取尺寸等值而不返回此类错误?

最佳答案

行被解释为列表,因此您还需要循环遍历它们以提取维度。这是一个解决方案。

for i in raw_json:
    for j in i['data']['rows']:
        print(j['dimensions'])

关于python - 尝试从 json 解析值时出现类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70000479/

相关文章:

java - 如何在 Spring GET servlet 中保留空值?

python - 使用 python 将新列从列表 append 到 df

python - 在 pandas 数据框中第一次出现条件后删除所有行

python - 如何设置计算移动平均线的开始时间和结束时间?

python - 如何在 keras 中保存整个数据的预测值

java - 如何使用 javax.json.* 在 Java 中写出 JSON 数据?

python - 将 networkx DiGraph 打印为嵌套的 JSON 格式

python - 将多维字典写入文件

python - 无法使用自签名 SSL 证书执行对 URL 的请求

python - 从 。使用 __import__ 导入 x?