我已经从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(。你有两种方法:
- 您可以将每个文件作为文本文件读取,并逐行合并
- 您可以将它们转换为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元素。