使用python解析json-字符串索引必须是整数

使用python解析json-字符串索引必须是整数,python,json,Python,Json,python新手,我正在尝试编写一个脚本来解析json文件,以便只打印出状态未“启动”的任何值的id和状态,并退出代码2。如果他们都说启动并退出0,则不打印任何内容 然而,我得到了错误“字符串索引必须是整数”关于如何读取此json的问题,有什么建议吗 import json jsonFile = open('topics.json', 'r') data = json.load(jsonFile) for check in data['rows']: if check['state']

python新手,我正在尝试编写一个脚本来解析json文件,以便只打印出状态未“启动”的任何值的id和状态,并退出代码2。如果他们都说启动并退出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"
    }
  ]
}

您需要
打印检查['id'],检查['state']

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

此外,不平等性的比较应使用
=
不是
<代码>是
比较对象标识,两个对象可以具有相同的值而不是相同的对象,因此使用:

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

您需要
打印检查['id'],检查['state']

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

此外,不平等性的比较应使用
=
不是
<代码>是
比较对象标识,两个对象可以具有相同的值而不是相同的对象,因此使用:

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

就这样!非常感谢。就这样!非常感谢。