首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Coding
V2EX  ›  Python

求问想处理一个 21Gjson 文件需要怎么操作啊

  •  
  •   bfpiaoran · 2018-07-06 16:46:47 +08:00 · 1861 次点击
    这是一个创建于 527 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有人跟我说
    with open("file_name",'r') as file:
    for line in file:
    pass
    这样读可以的 有没有更好的方法呀
    30 回复  |  直到 2018-07-19 20:30:58 +08:00
        1
    hellojinjie   2018-07-06 16:51:35 +08:00 via Android
    直接 json.loads

    嗯,这个时候就是考验你是不是土豪的时候了😄
        2
    hahastudio   2018-07-06 16:53:28 +08:00
        3
    yedashuai   2018-07-06 16:55:59 +08:00
    @hellojinjie 楼上坏坏~~~
        4
    mokeyjay   2018-07-06 16:56:39 +08:00
    json 是有一定结构的,你一行一行读了也没法解析呀
        5
    haon   2018-07-06 16:56:48 +08:00
    分块啊
        6
    bfpiaoran   2018-07-06 16:58:33 +08:00
    问题是 json 格式啊 可怜我的小破机器只有 16G @hahastudio @hellojinjie 坏银~~
        7
    qfdk   2018-07-06 16:59:49 +08:00 via iPhone
    扔进 elk ?
        8
    yanaraika   2018-07-06 17:00:00 +08:00 via Android
    开 swap,存成 hdf 等适合大数据的格式
        9
    InternetExplorer   2018-07-06 17:00:14 +08:00
    哪个机器导出来的?这么牛的机器一定也能读吧,让那个机器转成可以分块读取的数据结构再给你
        10
    bfpiaoran   2018-07-06 17:00:38 +08:00
    @hahastudio 这个库可以读么
        11
    eastrd   2018-07-06 17:00:39 +08:00 via Android
    丢进 Splunk 吧
        12
    bfpiaoran   2018-07-06 17:01:33 +08:00
    @InternetExplorer 从网上下的 dns 记录
        13
    bfpiaoran   2018-07-06 17:02:05 +08:00
    @yanaraika
    @eastrd 就像用本机处理 再开大数据好麻烦。。
        14
    bfpiaoran   2018-07-06 17:06:46 +08:00
    凉了 不是 21G 解压之后 127G
        15
    hahastudio   2018-07-06 17:09:58 +08:00
    @bfpiaoran https://www.dataquest.io/blog/python-json-tutorial/
    不过好像要分行,如果你这个只有 1 行,那我估计你就要先预处理分行了
        16
    Droi   2018-07-06 17:12:09 +08:00
    用 pandas 试试
    详细的教程:
    https://www.dataquest.io/blog/python-json-tutorial/
        17
    strict   2018-07-06 17:12:49 +08:00
    json.load(f)试试?
        18
    xenme   2018-07-06 17:13:53 +08:00
    @bfpiaoran DNS 记录也就一行一行的,不会台复杂,直接自己按行读取解析下就好了,又不是未知结构。
        19
    814084764   2018-07-06 17:18:50 +08:00
    类似于 SAX 读取 XML 的方式??? DOM 方式肯定不行了。

    JDK 提供的 XML 解析方式分为两种:DOM 方式和 SAX 方式
    DOM:Document Object Model。需要读取整个 XML 文档,先需要在内存中构架代表整个 DOM 树的 Document 对象,可以进行随机访问. 需要考虑内存.适合增删改
    SAX:Simple API for XML。采用事件驱动的方式解析 XML 文件,边读边对文档进行处理.适合读取
        20
    bfpiaoran   2018-07-06 17:20:07 +08:00
    读出来了 很普通的格式 我去想怎么处理啦 谢谢~~~
    with open("file_name",'r') as file:
    for line in file:
    pass
    这样读都是秒读的
        21
    wizardoz   2018-07-06 17:21:25 +08:00
    自己从头解析啊,深度优先,一层层放入数据库。
        22
    FanWall   2018-07-06 17:22:00 +08:00 via Android
    @814084764 #19
    SAX +1,边读取边解析边对解析后的数据进行处理
        23
    bfpiaoran   2018-07-06 17:30:54 +08:00
    @wizardoz 打算这么做了
        24
    crab   2018-07-06 17:32:28 +08:00
    导入数据库,再通过数据库来
        25
    RicardoScofileld   2018-07-06 18:02:14 +08:00
    有个流式读取 json 的库 好行叫 jsonstream 来着可以用那个
        26
    RicardoScofileld   2018-07-06 18:03:04 +08:00
    @Droi 如果 json 数据不规整,read_json 不会报错吗
        27
    icyalala   2018-07-06 18:56:24 +08:00
    mmap 然后用 SAX 的 API 读取。
    如果用 C++ 的话,可以试试 rapidjson。
        28
    luozic   2018-07-08 01:56:59 +08:00 via iPhone
    想办法处理一下,把数据搞进数据库。后面玩起来就爽了,elk,postgresql 都支持直接处理 json
        29
    bfpiaoran   2018-07-19 19:09:06 +08:00
    @luozic 搞了下太慢了 最后把首字母排序处理的~~
        30
    luozic   2018-07-19 20:30:58 +08:00
    @bfpiaoran 你得先把这些数据解析一下塞到数据库里面再搞,直接塞,太耗 cpu 内存了。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2267 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 10:42 · PVG 18:42 · LAX 02:42 · JFK 05:42
    ♥ Do have faith in what you're doing.