将3.7GB的大json文件加载到数据帧中,然后使用ijson转换为CSV文件

Dinh Truong Anh Phuong

我有一个3.7gb的大json数据文件。IAM将JSON文件加载到数据帧并删除未使用的列,然后将其转换为CSV并加载到SQL。内存是40GB我的json文件结构

{"a":"Ho Chi Minh City, Vietnam","gender":"female","t":"841675194476","id":"100012998502085","n":"Lee Mến"}
{"t":"84945474479","id":"100012998505399","n":"Hoàng Giagia"}
{"t":"841679770421","id":"100012998505466","n":"Thoại Mỹ"}

我尝试加载数据,但是由于内存不足而失败

data_phone=[]
with open('data.json', 'r', encoding="UTF-8") as f:
    numbers = ijson.items(f, 't',multiple_values=True)
    for num in numbers :
        data_phone.append(num)

显示错误

Out of memory

我尝试另一种方式

import json fb_data = {} i = 1

with open('output.csv', 'w') as csv_file:
    with open("Vietnam_Facebook_Scrape.json", encoding="UTF-8") as json_file:
        for line in json_file:
            data = json.loads(line)
            try:
                csv_file.write('; '.join([str(i),"/",data["t"],data["fbid"]]))
            except:
                pass

然后,我从csv转换为sql,它仍然显示错误“ MemoryError:”

con = db.connect("fbproject.db")
cur = con.cursor()
with open('output.csv', 'r',encoding="UTF-8") as csv_file:
    for item in csv_file:
        cur.execute('insert into fbdata values (?)', (item,))
con.commit()
con.close()

谢谢阅读

埃里克·杜米尼尔

您的建议是:

  • 步骤1读取json文件
  • 步骤2加载到数据框
  • 步骤3将文件另存为CSV
  • 第4步将CSV加载到SQL
  • 步骤5将数据加载到Django进行搜索

你的第二个例子的问题是,你仍然可以使用全局列表(data_phonedata_name),它随时间增长。

对于大型文件,这是您应该尝试的方法:

  • 步骤1读取JSON
    • 逐行
    • 不要将任何数据保存到全局列表中
    • 将数据直接写入SQL
  • 步骤2将索引添加到数据库
  • 步骤3使用来自Django的SQL

您无需将任何内容写入CSV。如果确实需要,您可以简单地逐行写入文件:

import json
with open('output.csv', 'w') as csv_file:
    with open("Vietnam_Facebook_Scrape.json", encoding="UTF-8") as json_file:
        for line in json_file:
            data = json.loads(line)
            csv_file.write(';'.join([data['id'], data['t']]))

这是一个可能对您有所帮助的问题(Python和SQLite:插入table),以便逐行写入数据库。

如果要改用CSV,请确保用于将CSV转换为SQL的程序不会读取整个文件,而是逐行或批量解析它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ValueError:预期的对象或值<->无法将json文件加载到pandas数据帧,或转换为csv,都足够

来自分类Dev

使用 ijson python 将 1.4 GB json 数据加载到 mysql

来自分类Dev

如何将S3存储桶中的选定文件转换为雪花阶段,以便使用python和boto3将数据加载到雪花中

来自分类Dev

无法将数据保存到文件,然后将其加载到Unity3d中

来自分类Dev

R将CSV文件转换为数据帧

来自分类Dev

R将CSV文件转换为数据帧

来自分类Dev

如何从本地JSON文件将数据加载到ViewController中

来自分类Dev

将数据从JSON文件加载到Javascript对象中

来自分类Dev

使用sklearn将.csv文件加载到python中

来自分类Dev

使用批处理将csv文件加载到mysql中?

来自分类Dev

使用python 2.7将csv文件加载到mysql中

来自分类Dev

将csv文件加载到列表中

来自分类Dev

使用Rubygems将CSV文件数据加载到Mysql中

来自分类Dev

使用Java将日期和时间的csv文件加载到oracle数据库中

来自分类Dev

使用Rubygems将CSV文件数据加载到Mysql中

来自分类Dev

使用 Spring Batch 将多个 CSV 文件加载到数据库中

来自分类Dev

将哈希表中的XML转换为表对象,然后将其加载到数据集中

来自分类Dev

如何将非常大的CSV数据集加载到d3中

来自分类Dev

从文件将数据加载到表中

来自分类Dev

使用复选框将数据从JSON文件加载到Tree中

来自分类Dev

使用R将JSON文件转换为CSV文件

来自分类Dev

使用JMETER CSV Date set config时如何将请求正文中的CSV文件中的数据转换为JSON

来自分类Dev

如何使用Spark数据帧将CSV数据加载到Hive中?

来自分类Dev

将Json数据加载到nvd3图形中

来自分类Dev

将JSON数据加载到D3中的数组

来自分类Dev

将多个.txt文件作为数据帧加载到python中

来自分类Dev

将数据从 csv 文件加载到 Big query 时 Json 模式文件的用途

来自分类Dev

如何将json加载到pandas数据帧中?

来自分类Dev

将数据帧保存到 csv 文件 Python 3

Related 相关文章

  1. 1

    ValueError:预期的对象或值<->无法将json文件加载到pandas数据帧,或转换为csv,都足够

  2. 2

    使用 ijson python 将 1.4 GB json 数据加载到 mysql

  3. 3

    如何将S3存储桶中的选定文件转换为雪花阶段,以便使用python和boto3将数据加载到雪花中

  4. 4

    无法将数据保存到文件,然后将其加载到Unity3d中

  5. 5

    R将CSV文件转换为数据帧

  6. 6

    R将CSV文件转换为数据帧

  7. 7

    如何从本地JSON文件将数据加载到ViewController中

  8. 8

    将数据从JSON文件加载到Javascript对象中

  9. 9

    使用sklearn将.csv文件加载到python中

  10. 10

    使用批处理将csv文件加载到mysql中?

  11. 11

    使用python 2.7将csv文件加载到mysql中

  12. 12

    将csv文件加载到列表中

  13. 13

    使用Rubygems将CSV文件数据加载到Mysql中

  14. 14

    使用Java将日期和时间的csv文件加载到oracle数据库中

  15. 15

    使用Rubygems将CSV文件数据加载到Mysql中

  16. 16

    使用 Spring Batch 将多个 CSV 文件加载到数据库中

  17. 17

    将哈希表中的XML转换为表对象,然后将其加载到数据集中

  18. 18

    如何将非常大的CSV数据集加载到d3中

  19. 19

    从文件将数据加载到表中

  20. 20

    使用复选框将数据从JSON文件加载到Tree中

  21. 21

    使用R将JSON文件转换为CSV文件

  22. 22

    使用JMETER CSV Date set config时如何将请求正文中的CSV文件中的数据转换为JSON

  23. 23

    如何使用Spark数据帧将CSV数据加载到Hive中?

  24. 24

    将Json数据加载到nvd3图形中

  25. 25

    将JSON数据加载到D3中的数组

  26. 26

    将多个.txt文件作为数据帧加载到python中

  27. 27

    将数据从 csv 文件加载到 Big query 时 Json 模式文件的用途

  28. 28

    如何将json加载到pandas数据帧中?

  29. 29

    将数据帧保存到 csv 文件 Python 3

热门标签

归档