我有一个文件,每行包含一个JSON对象,这意味着整个文件不是有效的JSON,但只有每一行都是。
我要做的是迭代文件并将每一行转换为JSON,然后打印这些值,因为只有每一行本身都是有效的JSON。
该文件如下所示:
{json object 1}
{json object 2}
{json object 3}
{json object 4}
每个JSON对象如下所示:
{"event":"Session","properties":{"time":1423353612,"duration":33}}
我试图运行但没有成功的代码如下:
import simplejson as json
with open("sessions.json", "r") as f:
for line in f:
j=json.JSONEncoder().encode(line)
print j['event']['time']
print j['event']['duration']
我收到以下错误:
TypeError: string indices must be integers, not str
任何想法为什么?
谢谢!
答案 0 :(得分:0)
你说错了。从JSON字符串转换为Python对象是 de 编码,而不是编码。在任何情况下,最好使用json
模块中的顶级函数,而不是底层类本身。
for line in f:
j = json.loads(line)
修改强>
根据您显示的结构,j['event']
是字符串“Session”,它没有子属性time
。看起来像是j['properties']['time']
。