我正在从AWS(从javascript文件)中抓取一些JSONP字典。在只为类似JSON的数据解析原始数据之后,在某些情况下,我得到了一个有效的JSON,并且可以在Python(json_data = json.loads(json_like_data)
)中成功地加载它。然而,一些Amazon的jsonp不在它们的键周围包含引号(见下文)。
...
{type:"storageCurrentGen",sizes:
[{size:"i2.xlarge",vCPU:"4",ECU:"14",memoryGiB:"30.5",storageGB:"1 x 800 SSD",valueColumns:[{name:"linux",prices:{USD:"0.938"}}]},
{size:"i2.2xlarge",vCPU:"8",ECU:"27",memoryGiB:"61",storageGB:"2 x 800 SSD",valueColumns:[{name:"linux",prices:{USD:"1.876"}}]},
{size:"i2.4xlarge",vCPU:"16",ECU:"53",memoryGiB:"122",storageGB:"4 x 800 SSD",valueColumns:[{name:"linux",prices:{USD:"3.751"}}]},
...
对于JSONP,这仍然有效,因为它是有效的JavaScript语法。然而,Python的json.loads(json_str)
是无效的。
还有一个Python模块YAML可以处理未加引号的键,但分号(:
)后面必须有空格。
我想我有两个选择。
{
| ,
)和冒号(:
)之间替换字符。然后使用json.loads(...)
。:
)。然后用yaml.load(...)
解析。我想选择2比选择1好。不过,我正在寻求更好的解决办法。
以前有没有人遇到过这种格式不正确的JSON并使用Python来解析它?
目前没有回答
相关问题 更多 >
编程相关推荐