【发布时间】:2021-07-13 18:10:54
【问题描述】:
我抓取了一个无法解析为 JSON 的 JavaScript 对象,因为它有未加引号的键。
我在这里找到了一个解决方案,它说使用 PyYaml 库将对象加载为 Python 数据结构,然后将其写回为有效的 JSON:
https://stackoverflow.com/a/31030022/10601287
这对我来说是一个很好的解决方案,但是yaml.load(js_obj) 会导致键和值作为键合并在一起,并导致值默认为“无”。这是我的代码 sn-p:
import yaml
yaml_obj = yaml.safe_load(js_obj)
print(yaml_obj)
加载为 YAML 之前的 JavaScript 对象示例(实际上它比这个大得多):
{
path:"1/83656/83659/83669/83670",
is_active:!0,
level:4,
children_count:0,
product_count:59,
parent_id:83669,
name:"Red Wine",
position:1,
id:83670,
include_in_menu:1,
url_key:"red-wine-83670",
url_path:"liquor/wine/red-wine.html",
_score:null,
slug:"red-wine-83670"
}
在 yaml.load(js_obj) 之后:
{
'path:"1/83656/83659/83669/83670"': None,
'is_active:!0': None,
'level:4': None,
'children_count:0': None,
'product_count:59': None,
'parent_id:83669': None,
'name:"Red Wine"': None,
'position:1': None,
'id:83670': None,
'include_in_menu:1': None,
'url_key:"red-wine-83670"': None,
'url_path:"liquor/wine/red-wine.html"': None,
'_score:null': None,
'slug:"red-wine-83670"': None
}
任何建议将不胜感激。
【问题讨论】:
-
您需要在 Python 中执行此操作吗?
-
是的,很遗憾我这样做了,因为我实际上正在使用一个名为 Knime 的分析软件,我只能使用 Python 脚本。
标签: python json object parsing yaml