有没有轻量级的 py 库能够解析在 JS 里的 JSON?

2016 年 5 月 28 日
 est
比如 var foobar = [[{}, {}, {}], [{}, {}, {}], ]

这种。。平衡匹配括号就出来了。其中 var foobar 能够通过正则找到文档中的 offset 并且精确定位。

如何把后面的 JSON 提取出来?

不想引入一大坨 nodejs 依赖。

parser 学得烂,菜鸟表示不会写啊 -_-
4626 次点击
所在节点    Python
23 条回复
jarlyyn
2016 年 5 月 29 日
爬虫?
VeryCB
2016 年 5 月 29 日
guyskk
2016 年 5 月 29 日
先要把 `[[{}, {}, {}], [{}, {}, {}], ] `取出来,然后用 js2py 这个库, https://github.com/PiotrDabkowski/Js2Py
```
>>> import js2py
>>> js2py.eval_js('[[{}, {}, {}], [{}, {}, {}], ]')
[[{}, {}, {}], [{}, {}, {}]]
>>>
```
est
2016 年 5 月 29 日
@guyskk 要的就是一个工具能自动匹配突破换行、注释和空白符号可以实现 “把 `[[{}, {}, {}], [{}, {}, {}], ] `取出来” 的工具
@VeryCB 看起来要的就是这货了! thanks !
est
2016 年 5 月 29 日
@VeryCB 话说我研究过 pypy 搞那个 js 转 py 的工具。太复杂了。一个 phd 写了毕业论文就弃坑了。我日。
Lonely
2016 年 5 月 29 日
为啥我一看到 py 想到的却不是 python😨
linuxchild
2016 年 5 月 29 日
@Lonely 朋友(๑°3°๑)
Valyrian
2016 年 5 月 29 日
最快的难道不是 ujson..?
YUX
2016 年 5 月 29 日
import json

a = """{"status":{"msg":"Success","code":0,"version":"1.0"},"result_type":1}"""

j = json.loads(a)

print j["status"] #{u'msg': u'Success', u'code': 0, u'version': u'1.0'}
YUX
2016 年 5 月 29 日
另外安利一个直观查看 JSON 数据结构的工具 https://jsonformatter.curiousconcept.com/
ZavierXu
2016 年 5 月 29 日
楼上是来搞笑的么。。。。
est
2016 年 5 月 29 日
@YUX

大哥,在一堆杂乱的 js 源码里,如何提取你第 2 行代码 """ """ 之间那一坨东西?

人工复制粘贴?
magicdawn
2016 年 5 月 29 日
magicdawn
2016 年 5 月 29 日
Node 大法好啊~ 取出来直接 eval, 要怕出事用 vm 模块, sandbox 运行下
est
2016 年 5 月 29 日
@magicdawn 嗯。你 eval 一个 `exit()` 然后进程直接退出了。 (手动 doge.gif
est
2016 年 5 月 29 日
@magicdawn 看起来没处理注释 和字符串?

比如有的人会嵌套:

var foobar = {"key": "{ /* 注释里带一个 } 就问你叼不叼 */ \"key\": \"value}])\" }"}
est
2016 年 5 月 29 日
例子有错 var foobar = {"key": /* 注释里带一个 } 就问你叼不叼 */ "{\"key\": \"value}])\" }"}
magicdawn
2016 年 5 月 29 日
@est
这个确实没有处理~
btw 确实叼
magicdawn
2016 年 5 月 29 日
@est

有想法~又可以造轮子了~好开森...
guyskk
2016 年 5 月 29 日
@est
有网址吗,我研究研究

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

https://v2ex.xtra.eu.org/t/281949

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

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

© 2021 V2EX