【问题标题】:Converting a massive JSON file to CSV将海量 JSON 文件转换为 CSV
【发布时间】:2018-04-23 01:18:16
【问题描述】:

我有一个 48MB 的 JSON 文件(我数据挖掘的推文集合)。我需要将 JSON 文件转换为 CSV,以便将其导入 SQL 数据库并进行清理。

我已经尝试了每个 JSON 到 CSV 转换器,但它们都返回“文件超出限制”/文件太大的相同结果。有没有什么好方法可以在短时间内将如此庞大的 JSON 文件转成 CSV?

谢谢!

【问题讨论】:

  • @msanford 将 JSON 转换为 CSV。
  • @CodyG。所以它确实......
  • 如果您正在寻找基于非编程的解决方案,您可以尝试查看 Excel Power Query 是否适用于您的转换...

标签: sql json csv


【解决方案1】:

一个 48mb 的 json 文件非常小。您应该能够使用类似这样的方式将数据加载到内存中

import json

with open('data.json') as data_file:    
    data = json.load(data_file)

根据您写入 json 文件的方式,数据可能是一个列表,其中包含许多字典。尝试运行:

type(data)

如果类型是列表,则遍历每个元素并检查它。例如:

for row in data:
    print(type(row))
    # print(row.keys())

如果 row 是一个 dict 实例,则检查键并在循环内,开始构建 CSV 的每一行应包含的内容,然后您可以使用 pandas、csv 模块或只是打开一个文件并写入 line by自己用逗号行。

所以可能是这样的:

import json

with open('data.json') as data_file:    
    data = json.load(data_file)


with open('some_file.txt', 'w') as f:

    for row in data:
        user = row['username']
        text = row['tweet_text']
        created = row['timestamp']
        joined = ",".join([user, text, created])
        f.write(joined)

您可能仍会遇到 unicode 字符、数据中的逗号等问题...但这是一般指南。

【讨论】:

  • 看起来不错的答案,但 OP 没有指定任何编程语言... ;(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-31
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 2021-03-31
  • 2018-01-23
  • 1970-01-01
相关资源
最近更新 更多