V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
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
chengxiao
V2EX  ›  Python

是否有方法能忽略不标准的 json 数据中的键值对呢?

  •  
  •   chengxiao · Jun 19, 2019 · 2531 views
    This topic created in 2504 days ago, the information mentioned may be changed or developed.
    爬虫抓下来的一些 json 数据,大概每条有 1M 左右大,结构比较复杂,直接扔 mongodb 了,但是会出现一种情况,就是 mongodb 不允许 json 中的 key 带"."这样的符号 ,有没有什么方法能快速过滤掉这些不符合规则的键值对呢?
    7 replies    2019-06-20 10:53:21 +08:00
    iblessyou
        1
    iblessyou  
       Jun 19, 2019
    直接全局替换成别的符号?
    chengxiao
        2
    chengxiao  
    OP
       Jun 19, 2019
    @iblessyou 似乎不太合适 ,主要是遍历起来可能会比较耗时,有可能这个 key 在 第 n 层....
    est
        3
    est  
       Jun 19, 2019
    转成字符串存进去。2333
    razertory
        4
    razertory  
       Jun 19, 2019
    先转换成字符串,再在字符串中找到 “.”: 这样的把里面的 . 去掉。一般就是用正则或者自定义一些字符串处理模式。然后再转回 json 存 mongo 就好。
    icebreaker12
        5
    icebreaker12  
       Jun 19, 2019
    转成 json 串再正则替换?
    chengxiao
        6
    chengxiao  
    OP
       Jun 19, 2019
    @razertory
    @icebreaker12
    感谢 之前也是考虑到用正则 不过这个 json 不小,处理起来比较耗时
    刚才看了下 mongodb 已经支持带.的 key 了 看了下是 pymongo 里还有 key 的拼写检查,把 pymongo 的 key 检查改 False 就 ok 了
    Danswerme
        7
    Danswerme  
       Jun 20, 2019 via Android
    最近也在搞类似的东西,最后生成的 json 有点大,一不小心点开之后 vscode 扩展直接就崩了,sublime 倒还能挺住。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1481 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 693ms · UTC 17:06 · PVG 01:06 · LAX 10:06 · JFK 13:06
    ♥ Do have faith in what you're doing.