【问题标题】:parsing json with python - string indices must be integers用 python 解析 json - 字符串索引必须是整数
【发布时间】:2018-04-03 12:40:57
【问题描述】:

python 新手,我正在尝试编写一个脚本来解析一个 json 文件,以仅打印出状态不是“STARTED”的任何值的 id 和状态并退出代码 2。如果它们不打印,则不打印都说 STARTED 并退出 0。

但是,我收到错误“字符串索引必须是整数”关于我如何尝试读取此 json 的问题有任何建议吗?

import json
jsonFile = open('topics.json', 'r')
data = json.load(jsonFile)

for check in data['rows']:
    if check['state'] is not "STARTED":
        print check['id']['state']

这是我的topics.json的一个例子

{
  "page": 0,
  "page_size": 100,
  "total_pages": 10,
  "total_rows": 929,
  "headers": [
    "*"
  ],
  "rows": [
    {
      "id": "168",
      "state": "STARTED"
    },
    {
      "id": "169",
      "state": "FAILED"
    },
    {
      "id": "170",
      "state": "STARTED"
    }
  ]
}

【问题讨论】:

    标签: python json


    【解决方案1】:

    你想要print check['id'],check['state']

    check['id'] 返回一个字符串,所以check['id']['state'] 尝试用字符串而不是整数来索引字符串,从而导致错误。

    此外,不等式的比较应使用!= 而不是is notis比较对象标识,两个对象可以有相同的值,也可以不是同一个对象,所以使用:

    if check['state'] != "STARTED":
    

    【讨论】:

    • 就是这样!谢谢!
    猜你喜欢
    • 2016-04-22
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 2013-12-03
    • 2019-08-15
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多