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

Blo*_*oze 0 python json

python的新手,我正在尝试编写一个脚本来解析一个json文件,只打印出状态不是"STARTED"并退出代码2的任何值的id和状态.如果他们都说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']
Run Code Online (Sandbox Code Playgroud)

这是我的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"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*nen 5

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

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

此外,不平等的比较!=不应该使用is not. is比较对象标识,两个对象可以具有相同的值而不是同一个对象,因此使用:

if check['state'] != "STARTED":
Run Code Online (Sandbox Code Playgroud)