问题
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