将json对象写入文本文件然后再读回来的最佳方法是什么?

时间:2015-12-06 16:17:44

标签: python json tweepy

我正在尝试编写一个服务来读取Twitter提要流数据,然后将其写入文件。我正在将每个JSON结构写入文件中的一行。使用不同的服务,我需要读取文件的每一行并加载json结构以进行进一步的操作。

我的问题是我可以读取第一行,然后JSON加载器说其余的不是JSON结构。他们看起来很好。不知道发生了什么。

撰写文件:

self.output = open(os.path.join(self.outputdir,self.filename,'w')
self.output.write(status + "\n")

阅读文件:

with open(file) as f:
   line = line.replace("\n","")
   tweet = json.loads(line)
   print tweet['text']

引发ValueError(“无JSON对象可被解码”) ValueError:无法解码JSON对象

示例json文件: JSON File

JSON File

1 个答案:

答案 0 :(得分:0)

你的json由多个json对象和空行组成。 您需要将每一行加载为新的json对象并忽略空行:

>>> with open('streamer.151205-071156.json') as f:
>>>    data = [json.loads(l) for l in f if len(l) > 1]
>>> len(data)
7
>>> print(data[0]['text'])
u'Mnjd \U0001f642\U0001f602 https://t.co/BL5Ezxtt0i'