Parsing JSON fails as strings appear instead of dicts/lists [closed]

[亡魂溺海] 提交于 2019-12-02 16:04:32

问题


with open('twit/example.json', encoding='utf8') as json_data:
    for line in json_data:
        try:
            dataText = json.loads(line)
        except ValueError:
            continue

for a in dataText:
    print(a["user"]["location"])

the result is: string indices must be integers

Update: The below answer is for printing

print(dataText["user"]["location"])

now I want this one:

print(a["user"]["location"])

回答1:


If your json file is in a normal format, use this instead:

with open('twit/example.json', encoding='utf8') as json_data:
    dataText = json.loads(line)

for a in dataText:
    print(dataText["user"]["location"])

The way your code is currently written makes me think you have multiple json structures in a single file, separated by new lines. This is not how json is usually formatted.



来源:https://stackoverflow.com/questions/44579796/parsing-json-fails-as-strings-appear-instead-of-dicts-lists

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!