使用Python(流twitter)将多个JSON文件合并为一个文件



我已经从Twitter上提取了数据。目前,数据在多个文件中,我无法将其合并到一个文件中。

注意:所有文件都是JSON格式。

我使用的代码在这里和这里。

有人建议使用glop来编译JSON文件

正如我在一些关于使用Python合并JSON的教程中看到的那样,我编写了这段代码

from glob import glob 
import json
import pandas as pd
with open('Desktop/json/finalmerge.json', 'w') as f: 
for fname in glob('Desktop/json/*.json'): # Reads all json from the current directory 
with open(fname) as j: 
f.write(str(j.read())) 
f.write('n')

我成功地合并了所有文件,现在文件是finalmerge.json.

现在我在几个线程中使用了这个建议:

df_lines = pd.read_json('finalmerge.json', lines=True)
df_lines
1000000*23 columns 

那么,我应该怎么做才能将每个功能分别列在不同的列中呢?

我不知道为什么JSON文件有什么问题,我检查了合并的文件,发现它作为JSON文件无效?我应该怎么做才能将其作为数据帧?

我之所以问这个问题,是因为我有非常基本的python知识,而且我发现的类似问题的所有答案都比我所能理解的要复杂得多。请帮助这个新的python用户将多个JSON文件转换为一个JSON文件。

我认为问题在于您的文件不是真正的json(或者更好的是,它们被构造为jsonl(。你有两种方法:

  1. 您可以将每个文件作为文本文件读取,并逐行合并
  2. 您可以将它们转换为json(在文件的开头添加一个方括号,在每个json元素的末尾添加一个逗号(

试着回答这个问题,让我知道它是否解决了你的问题:将JSONL文件加载为JSON对象

您也可以尝试以这种方式编辑代码:

with open('finalmerge.json', 'w') as f:
for fname in glob('Desktop/json/*.json'): 
with open(fname) as j:
f.write(str(j.read()))
f.write('n')

每一行都将是不同的json元素。

最新更新