我使用字典将tweet存储到多个json文件中,每个字典都包含一条tweet的信息。在每个字典中,我将用户id(key=“uid”)、tweet id(key=“id”)、文本(key=“txt”)和时间戳(key=“ts”)存储为单独的键。在
把多余的文件从tweets中删除,把多余的文件从tweets中删除。在
以下是其中一个json文件中的数据示例:
{"id": 1234, "txt":"text here 123", "ts":"Wed, 03 Apr 2013 12:03:28 +0000", "uid":12345}
{"id": 2345, "txt":"more text here", "ts":"Tue, 02 Apr 2013 16:50:20 +0000", "uid":23456}
{"id": 1234, "txt":"text here 123", "ts":"Wed, 03 Apr 2013 12:03:28 +0000", "uid":12345}
在这个例子中,第一条和第三条tweet是多余的。因此,我想删除第三条tweet。在
我目前掌握的代码如下。因为我是根据自己(有限的)使用Python的经验以及web上的其他示例来创建代码的,所以它不起作用。我得到以下错误:jsondecodererror:Extra data:line 1 column 192-line 1 column 10166(char 192-10166)
我认为我是在正确的轨道上,至少在浏览目录中的文件和删除多余的tweet方面。但是,我认为我的问题在于正确地加载和读取json文件。任何帮助、帮助或指导将不胜感激。在
(不,我不是一个为任务而做的学生——我是一名研究生,希望为我的研究分析Twitter数据。)
^{pr2}$编辑
我对代码做了一点修改。似乎原始数据并没有存储在每一条tweet的新行上——谢谢加里·菲克斯勒。现在问题已经解决,我遇到了另一个错误:
回溯
…
加载C:\Python27\lib\site packages\simplejson\uuu init_u9.py 451
解码C:\Python27\lib\site packages\simplejson\解码器.py409
JSONDecodeError:额外数据:行1列233-行2列1(char 233-456)
其他一些注意事项:感谢Wesley Baugh——我实现了尽可能多的建议更改。在
而且,有太多的tweet一次加载所有东西——这些tweet是在3个月内连续收集的。在
更新后的代码如下
listoftweets = {}
listoffiles = []
os.chdir("/mydir")
for f in glob.glob("*.json"):
listoffiles.append(str(f))
t2 = open("cadillaccue_newline.json",'a')
for files in listoffiles:
t = open(files,'r')
for line in t:
text = line
text = text.replace('}{','}\n{')
t2.write(text)
t.close()
t2.close()
t = open("cadillaccue_newline.json",'r')
f1 = open("cadillaccue_alltweets.json",'a')
for line in t:
data = json.loads(line)
tid = data['id']
if tid not in listoftweets:
json.dump(data,f1)
listoftweets[tid] = 0
t.close()
f1.close()
目前没有回答
相关问题 更多 >
编程相关推荐