在多个json文件中浏览多个字典中的tweet

2024-04-19 20:12:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用字典将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()

Tags: 文件key代码textintxtidjson