Python Mongoexport导出无效的json文件
我从twitterapi收集了一些tweet并将其存储到mongodb中,我尝试将数据导出到JSON文件中,但没有任何问题,直到我尝试制作一个python脚本来读取JSON并将其转换为csv。我的代码出现此回溯错误:Python Mongoexport导出无效的json文件,python,json,mongodb,csv,twitter,Python,Json,Mongodb,Csv,Twitter,我从twitterapi收集了一些tweet并将其存储到mongodb中,我尝试将数据导出到JSON文件中,但没有任何问题,直到我尝试制作一个python脚本来读取JSON并将其转换为csv。我的代码出现此回溯错误: json.decoder.JSONDecodeError: Extra data: line 367 column 1 (char 9745) 所以,在互联网上翻找之后,我被要求在一个在线验证器中检查实际的JSON数据,我做到了。这给了我一个错误: Multiple JSON r
json.decoder.JSONDecodeError: Extra data: line 367 column 1 (char 9745)
所以,在互联网上翻找之后,我被要求在一个在线验证器中检查实际的JSON数据,我做到了。这给了我一个错误:
Multiple JSON root elements
从网站
以下是文件开头/结尾的第一个/第二个对象的图片:
或者是数据的链接
现在,问题是,我还没有在互联网上找到任何关于如何处理错误的信息。我不确定这是否是我收集、导出的数据的错误,或者我只是不知道如何使用它
我对这些推文的最终目的是制作一个网络图。我在看Networkx或Gephi,这就是为什么我想得到一个csv文件
如果要使用pandas将其转换为CSV,可以使用以下代码:
import json, pandas as pd
with open('path_to_your_json_file', 'rb') as infile:
json_block = []
dictlist=[]
for line in infile:
json_block.append(line)
if line.startswith('}'):
json_dict = json.loads(''.join(json_block))
dictlist.append(json_dict)
json_block = []
df = pd.DataFrame(jsonlist)
df.to_csv('out.csv',encoding='utf-8')
如果您想将json对象展平,可以使用pandas.io.json.json\u normalize()方法。回复有点晚,我不确定在发布此问题时它是否可用。无论如何,现在有一种简单的方法可以导入
mongoexport
json数据,如下所示:
df = pd.read_json(filename, lines=True)
mongoexport
将每一行作为json对象本身提供,而不是将整个文件作为json提供。详细说明@MYGz建议使用--jsonArray
您的帖子没有显示您是如何从mongo导出数据的。如果您通过终端使用以下内容,您将从mongodb获得有效的json:
mongoexport --collection=somecollection --db=somedb --jsonArray --out=validfile.json
将somecollection
、somedb
和validfile.json
分别替换为目标集合、目标数据库和所需的输出文件名
以下内容:mongoexport--collection=somecollection--db=somedb--out=validfile.json
…不会提供您要查找的结果,因为:
默认情况下,mongoexport使用一个JSON文档为每个用户写入数据
MongoDB文件
我很惊讶。你能发布导出的json文件的开头和结尾吗?@RobertMoskal我用文件的图片更新了原始帖子。stackoverflow不允许我发布代码,因为数据中的某些链接被缩短。请将示例数据上载到某个文件共享网站并共享该链接。@MohammadYusufGhazi这里有一个指向数据的链接,该链接太大,无法复制pastebin。那条线有你需要的答案。
mongoexport --collection=somecollection --db=somedb --jsonArray --out=validfile.json