格式化和解码Twitter流JSON输出
我在用我写的Python脚本收集Twitter数据时,遇到了格式和编码的问题。输出的内容看起来是这样的:
{"created_at":"Wed May 07 20:53:05 +0000 2014", "id":464145921098674177, "id_str":"464145921098674177" ...
... 这条信息都是在一行上。每一行都是一条推文,里面包含了很多结构相同的信息。
我尝试用Python的JSON模块把这个json文件转换成字典,但总是报错,提示说结构不是有效的JSON格式。
最终,我想把这个JSON输出转换成表格格式。我想把文件转成CSV格式,然后再继续处理。现在我只希望能得到任何可读的内容。顺便说一下,我想用Python,因为这是我熟悉的语言。
这是我尝试使用的Python代码:
import json
json_file = open('twitterOutput.json', 'r').readlines()
j = json.loads(json_file[0])
print j
结果给我报错:“无法解码JSON对象”。顺便提一下,这只是测试代码。我只是想试试能不能让json_file列表中的一行工作。
谢谢。
1 个回答
0
要判断你哪里出错,光靠没有代码的描述是很难的,不过下面的代码应该能帮到你:
import json
twitter_output = # string of twitter output
twitter_output_dict = json.loads(twitter_output)
或者,如果输出结果是存储在一个文件里的话,你可以这样做:
import json
with open('twitter_output.json') as twitter_output_file:
twitter_output_dict = json.load(twitter_output_file)
至于“想把文件转成csv格式再继续处理”,你需要解释一下你想怎么做,以及你希望它的结构是什么样的。根据我所知,Twitter返回的JSON数据是一个嵌套的结构(可以在Twitter的文档上看到),所以要把它显示成csv格式,实际上取决于你想怎么组织这些数据。