Python TypeError:处理json文件时,字符串索引必须为整数

Python TypeError:处理json文件时,字符串索引必须为整数,python,json,Python,Json,代码 输出 client = gnewsclient.NewsClient(language='english', location='New Zealand', topic='Technology', max_results=5) newsa = client.get_news() newsb = json.dumps(newsa, indent=4, sort_keys=True) newsc = newsb.replace('[', '') newsc = newsc.replace(']

代码

输出

client = gnewsclient.NewsClient(language='english', location='New Zealand', topic='Technology', max_results=5)
newsa = client.get_news()
newsb = json.dumps(newsa, indent=4, sort_keys=True)
newsc = newsb.replace('[', '')
newsc = newsc.replace(']', '')
print (newsc)
print (newsc["title"])
回溯(最近一次呼叫最后一次):
文件“C:/Users/Paul/Documents/Python/J.A.R.V.I.S_001.py”,第87行,在
贾维斯(数据)
文件“C:/Users/Paul/Documents/Python/J.A.R.V.I.S_001.py”,第81行,jarvis
印刷品(新闻C[“标题”])
TypeError:字符串索引必须是整数
{
“链接”:https://news.google.com/__i/rss/rd/articles/CBMieGh0dHBzOi8vd3d3LnN0dWZmLmNvLm56L3Nwb3J0LzExNzgzNjMxNC9vbHltcGljcy1vcGVuaW5nLXNob290aW5nLXN0YXItc2hvdy1ob3BlLWZyb20tc2F0ZWxsaXRlLWxhdW5jaGluZy1pbi1uZXctemVhbGFuZNIBAA?oc=5",
“媒体”:空,
“标题”:“火箭实验室停止发射运载奥运开幕“流星”卫星的火箭发射-Stuff.co.nz”
},
{
“链接”:https://news.google.com/__i/rss/rd/articles/CBMiVGh0dHBzOi8vd3d3LnN0dWZmLmNvLm56L2J1c2luZXNzLzExNzgxMzEwOC9oZXJlLWFyZS10aGUtc2l4LWJlc3Qtc21hcnRwaG9uZXMtb2YtMjAxOdIBAA?oc=5",
“媒体”:空,
“标题”:“以下是2019年六款最佳智能手机-Stuff.co.nz”
},
{
“链接”:"https://news.google.com/__i/rss/rd/articles/CBMieGh0dHBzOi8vd3d3LnRlY2hyYWRhci5jb20vbnovbmV3cy9taWNyb3NvZnQtbWF5LWhhdmUtYS1jbGV2ZXItd2F5LXRvLWtlZXAtc3VyZmFjZS1uZW8tYW5kLW90aGVyLWxhcHRvcHMtZnJvbS1vdmVyaGVhdGluZ9IBfGh0dHBzOi8vd3d3LnRlY2hyYWRhci5jb20vbnovYW1wL25ld3MvbWljcm9zb2Z0LW1heS1oYXZlLWEtY2xldmVyLXdheS10by1rZWVwLXN1cmZhY2UtbmVvLWFuZC1vdGhlci1sYXB0b3BzLWZyb20tb3ZlcmhlYXRpbmc?oc=5“,
“媒体”:空,
“标题”:“微软可能有一种聪明的方法来防止Surface Neo\u2013和其他笔记本电脑\u2013过热-TechRadar”
},
{
“链接”:https://news.google.com/__i/rss/rd/articles/CBMiTWh0dHBzOi8vaXRicmllZi5jby5uei9zdG9yeS92b2RhZm9uZS1uei1pbnZlc3RzLWluLWJvb3N0aW5nLWVuZXJneS1lZmZpY2llbmN50gFRaHR0cHM6Ly9pdGJyaWVmLmNvLm56L2FtcC9zdG9yeS92b2RhZm9uZS1uei1pbnZlc3RzLWluLWJvb3N0aW5nLWVuZXJneS1lZmZpY2llbmN5?oc=5",
“媒体”:空,
“标题”:“沃达丰新西兰投资提高能源效率-向新西兰简要介绍”
},
{
“链接”:https://news.google.com/__i/rss/rd/articles/CBMiQmh0dHBzOi8vY2hhbm5lbGxpZmUuY28ubnovc3RvcnkvaGFuZHMtb24tcmV2aWV3LXJpbmctZG9vci12aWV3LWNhbdIBRmh0dHBzOi8vY2hhbm5lbGxpZmUuY28ubnovYW1wL3N0b3J5L2hhbmRzLW9uLXJldmlldy1yaW5nLWRvb3Itdmlldy1jYW0?oc=5",
“媒体”:空,
“标题”:“实践回顾:环门视图Cam-新西兰ChannelLife”
}

您将您的
新闻C
视为一本词典,但它是一个字符串。您的
新闻a
是一个词典列表。不要试图将其转换为字符串,然后从中删除括号,希望它能给您一本词典。在其中进行迭代,如:

Traceback (most recent call last):
  File "C:/Users/Paul/Documents/Python/J.A.R.V.I.S_001.py", line 87, in <module>
    jarvis(data)
  File "C:/Users/Paul/Documents/Python/J.A.R.V.I.S_001.py", line 81, in jarvis
    print (newsc["title"])
TypeError: string indices must be integers

    {
        "link": "https://news.google.com/__i/rss/rd/articles/CBMieGh0dHBzOi8vd3d3LnN0dWZmLmNvLm56L3Nwb3J0LzExNzgzNjMxNC9vbHltcGljcy1vcGVuaW5nLXNob290aW5nLXN0YXItc2hvdy1ob3BlLWZyb20tc2F0ZWxsaXRlLWxhdW5jaGluZy1pbi1uZXctemVhbGFuZNIBAA?oc=5",
        "media": null,
        "title": "Rocket Lab stands down rocket launch carrying Olympics opening 'shooting star' satellite - Stuff.co.nz"
    },
    {
        "link": "https://news.google.com/__i/rss/rd/articles/CBMiVGh0dHBzOi8vd3d3LnN0dWZmLmNvLm56L2J1c2luZXNzLzExNzgxMzEwOC9oZXJlLWFyZS10aGUtc2l4LWJlc3Qtc21hcnRwaG9uZXMtb2YtMjAxOdIBAA?oc=5",
        "media": null,
        "title": "Here are the six best smartphones of 2019 - Stuff.co.nz"
    },
    {
        "link": "https://news.google.com/__i/rss/rd/articles/CBMieGh0dHBzOi8vd3d3LnRlY2hyYWRhci5jb20vbnovbmV3cy9taWNyb3NvZnQtbWF5LWhhdmUtYS1jbGV2ZXItd2F5LXRvLWtlZXAtc3VyZmFjZS1uZW8tYW5kLW90aGVyLWxhcHRvcHMtZnJvbS1vdmVyaGVhdGluZ9IBfGh0dHBzOi8vd3d3LnRlY2hyYWRhci5jb20vbnovYW1wL25ld3MvbWljcm9zb2Z0LW1heS1oYXZlLWEtY2xldmVyLXdheS10by1rZWVwLXN1cmZhY2UtbmVvLWFuZC1vdGhlci1sYXB0b3BzLWZyb20tb3ZlcmhlYXRpbmc?oc=5",
        "media": null,
        "title": "Microsoft may have a clever way to keep Surface Neo \u2013 and other laptops \u2013 from overheating - TechRadar"
    },
    {
        "link": "https://news.google.com/__i/rss/rd/articles/CBMiTWh0dHBzOi8vaXRicmllZi5jby5uei9zdG9yeS92b2RhZm9uZS1uei1pbnZlc3RzLWluLWJvb3N0aW5nLWVuZXJneS1lZmZpY2llbmN50gFRaHR0cHM6Ly9pdGJyaWVmLmNvLm56L2FtcC9zdG9yeS92b2RhZm9uZS1uei1pbnZlc3RzLWluLWJvb3N0aW5nLWVuZXJneS1lZmZpY2llbmN5?oc=5",
        "media": null,
        "title": "Vodafone NZ invests in boosting energy efficiency - IT Brief New Zealand"
    },
    {
        "link": "https://news.google.com/__i/rss/rd/articles/CBMiQmh0dHBzOi8vY2hhbm5lbGxpZmUuY28ubnovc3RvcnkvaGFuZHMtb24tcmV2aWV3LXJpbmctZG9vci12aWV3LWNhbdIBRmh0dHBzOi8vY2hhbm5lbGxpZmUuY28ubnovYW1wL3N0b3J5L2hhbmRzLW9uLXJldmlldy1yaW5nLWRvb3Itdmlldy1jYW0?oc=5",
        "media": null,
        "title": "Hands-on review: Ring Door View Cam - ChannelLife New Zealand"
    }

这将为您提供列表中每本词典的
标题。

请通过解释您要做的事情来说明上下文。
newsc
是一个字符串,而不是dict。因此,当它运行
newsc[“title”]
时,表示您不能使用“title”“作为字符串的索引。您可以使用
JSON.loads
将JSON对象的字符串转换回dict对象。为什么要去掉方括号,尤其是以这种不安全的方式?!
for dic in newsa:
    print(dic['title'])