JSON字符串索引必须为整数

Pet*_*ter 4 python json python-3.x

关于这个主题有很多问题,但是大多数似乎是人们忘记打电话的问题json.loads

这是我的示例:

import json

json_input = '{ "ar": { "articles": { "12345": {"title": "first title" } , "67890": {"title": "another title" } } } } '

data = json.loads(json_input)

for article in data['ar']['articles']:
    print(article['title'])
Run Code Online (Sandbox Code Playgroud)

打印调用失败,并显示以下错误:

TypeError:字符串索引必须是整数

我该如何解决?

mu *_*u 無 5

您当前正在打印的内容是文章字典的关键,而不是文章标题本身。如果您在示例中打印文章,它将打印键

In [6]: for article in data['ar']['articles']:
        print(article)
   ...:     
67890
12345
Run Code Online (Sandbox Code Playgroud)

要打印文章标题,请对字典中的项目进行迭代:

In [1]: import json

In [2]: json_input = '{ "ar": { "articles": { "12345": {"title": "first title" } , "67890": {"title": "another title" } } } } '

In [3]: data = json.loads(json_input)

In [4]: for article in data['ar']['articles'].values():
   ...:     print(article['title'])
   ...:     
another title
first title
Run Code Online (Sandbox Code Playgroud)