假设我有这样的json数据。
{"id": {"$oid": "57dbv34346"}, "from": {"$oid": "57dbv34346sbgwe"}, "type": "int"}
{"id": {"$oid": "57dbv34345"}, "from": {"$oid": "57dbv34345sbgwe"}, "type": "int"}
我在python中写了这样一个脚本
import json
with open('klinks_buildson.json', 'r') as f:
for line in f:
distros_dict = json.dumps(json.loads(line), sort_keys=True, indent=4)
print distros_dict['from']
print "\n"
但它给了我一个错误:
print distros_dict['from']
TypeError: string indices must be integers, not str
我想要两行中的from数据。
答案 0 :(得分:1)
您不需要加载该行,您可以加载该文件(假设其有效的json);像这样:
with open('klinks_buildjson.json', 'r') as f:
data = json.load(f)
现在data
是一个列表,其中每个项目都是一个对象。你可以迭代它:
for row in data:
print(row['from'])
要解决您的问题,请移除用于将对象转换为 s tring的json.dumps
,这不是您想要的。
distros_dict = json.loads(line)