使用python将包含JSON对象的文件解析到数据库中

时间:2015-05-12 13:37:45

标签: python json simplejson

我有一个文件,每行包含一个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

任何想法为什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

你说错了。从JSON字符串转换为Python对象是 de 编码,而不是编码。在任何情况下,最好使用json模块中的顶级函数,而不是底层类本身。

for line in f:
    j = json.loads(line)

修改

根据您显示的结构,j['event']是字符串“Session”,它没有子属性time。看起来像是j['properties']['time']