gpt4 book ai didi

python - Mongoexport 导出无效的 json 文件

转载 作者:行者123 更新时间:2023-12-04 12:14:32 24 4
gpt4 key购买 nike

我从 twitter API 收集了一些推文并将其存储到 mongodb,我尝试将数据导出到 JSON 文件并且那里没有任何问题,直到我尝试制作一个 python 脚本来读取 JSON 并将其转换为 csv .我的代码收到此回溯错误:

json.decoder.JSONDecodeError: Extra data: line 367 column 1 (char 9745)

因此,在互联网上挖掘之后,我被指出要检查在线验证器中的实际 JSON 数据,我做到了。这给了我以下错误:
Multiple JSON root elements

来自网站 https://jsonformatter.curiousconcept.com/

以下是文件开头/结尾的第一个/第二个对象的图片:
enter image description here
enter image description here

或数据链接 here

现在,问题是,我还没有在互联网上找到任何有关如何处理该错误的信息。我不确定是我收集、导出的数据有问题,还是我不知道如何使用它。

我对这些推文的最终目的是制作一个网络图。我正在查看 Networkx 或 Gephi,这就是我想要获取 csv 文件的原因。

最佳答案

  • 罗伯特·莫斯卡尔是对的。如果您可以在源头解决问题并在使用 mongoexport 时使用 --jsonArray 标志,那么我猜它会使问题变得更容易。如果您无法从源头解决它,请阅读以下几点。
  • 下面的代码将从给定的文件中提取单个 json 对象并将它们转换为 python 字典。
  • 然后,您可以将 CSV 逻辑应用于每个单独的字典。
  • 如果您使用的是 csv 模块,那么我会说使用 unicodecsv 模块,因为它会处理您的 json 对象中的 unicode 数据。

  • import json

    with open('path_to_your_json_file', 'rb') as infile:
    json_block = []
    for line in infile:
    json_block.append(line)
    if line.startswith('}'):
    json_dict = json.loads(''.join(json_block))
    json_block = []
    print json_dict

    如果您想使用 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_normalize() 方法。

    关于python - Mongoexport 导出无效的 json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40711650/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com