使用python将包含JSON对象的文件解析到数据库中
我有一个文件,每行包含一个JSON对象,这意味着整个文件不是有效的JSON,但只有每行本身是有效的 我要做的是迭代文件,将每一行转换为JSON,然后打印值,这很简单,因为只有每一行本身才是有效的JSON 该文件如下所示:使用python将包含JSON对象的文件解析到数据库中,python,json,simplejson,Python,Json,Simplejson,我有一个文件,每行包含一个JSON对象,这意味着整个文件不是有效的JSON,但只有每行本身是有效的 我要做的是迭代文件,将每一行转换为JSON,然后打印值,这很简单,因为只有每一行本身才是有效的JSON 该文件如下所示: {json object 1} {json object 2} {json object 3} {json object 4} {"event":"Session","properties":{"time":1423353612,"duration":33}} 每个JSON
{json object 1}
{json object 2}
{json object 3}
{json object 4}
{"event":"Session","properties":{"time":1423353612,"duration":33}}
每个JSON对象如下所示:
{json object 1}
{json object 2}
{json object 3}
{json object 4}
{"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
你知道为什么吗
谢谢 你打错电话了。从JSON字符串到Python对象的转换是解码,而不是编码。在任何情况下,最好使用
json
模块中的顶级函数,而不是底层类本身
for line in f:
j = json.loads(line)
编辑
给定您显示的结构,j['event']
是字符串“Session”,它没有子属性time
。看起来你的意思是j['properties']['time']