我正在从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(...)。
在ever冒号后添加空格(:)。然后用yaml.load(...)解析。
我想选择2比选择1好。不过,我正在寻求更好的解决办法。
以前有没有人遇到过这种格式不正确的JSON并使用Python来解析它?