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

2019-06-19 09:36:02 +08:00
 chengxiao
爬虫抓下来的一些 json 数据,大概每条有 1M 左右大,结构比较复杂,直接扔 mongodb 了,但是会出现一种情况,就是 mongodb 不允许 json 中的 key 带"."这样的符号 ,有没有什么方法能快速过滤掉这些不符合规则的键值对呢?
2052 次点击
所在节点    Python
7 条回复
iblessyou
2019-06-19 09:45:57 +08:00
直接全局替换成别的符号?
chengxiao
2019-06-19 09:49:13 +08:00
@iblessyou 似乎不太合适 ,主要是遍历起来可能会比较耗时,有可能这个 key 在 第 n 层....
est
2019-06-19 09:51:44 +08:00
转成字符串存进去。2333
razertory
2019-06-19 10:02:02 +08:00
先转换成字符串,再在字符串中找到 “.”: 这样的把里面的 . 去掉。一般就是用正则或者自定义一些字符串处理模式。然后再转回 json 存 mongo 就好。
icebreaker12
2019-06-19 10:02:47 +08:00
转成 json 串再正则替换?
chengxiao
2019-06-19 10:08:41 +08:00
@razertory
@icebreaker12
感谢 之前也是考虑到用正则 不过这个 json 不小,处理起来比较耗时
刚才看了下 mongodb 已经支持带.的 key 了 看了下是 pymongo 里还有 key 的拼写检查,把 pymongo 的 key 检查改 False 就 ok 了
Danswerme
2019-06-20 10:53:21 +08:00
最近也在搞类似的东西,最后生成的 json 有点大,一不小心点开之后 vscode 扩展直接就崩了,sublime 倒还能挺住。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/575352

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX