这是Json变体吗?[{ID:0,N:'3ergy',SIP:',

2024-04-26 06:32:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我从一个web服务中获得了大量类似Json的数据。数据的格式与Json相同,只是:

  1. 名称标识符不在引号中。你知道吗
  2. 该值用单引号括起来。你知道吗

示例如下:

[{ID:0,N:'3ergy',SIP:'',NC:'502',R:'',....

这是众所周知的格式吗?有没有Python工具可以将其转换为列表?你知道吗


Tags: 工具数据名称webidjson示例列表
2条回答

正如DrC所说,我已经能够解析您提供的pyyaml行了。你知道吗

import yaml

data = "[{ID:0,N:'3ergy',SIP:'',NC:'502',R:''}]"
parsed_data = yaml.load( ": ".join(data.split(":")))[0]
# {'SIP': '', 'R': '', 'NC': '502', 'ID': 0, 'N': '3ergy'}

parsed_data.get("NC")
# '502'

我不太愿意分享我的解决方案,因为它几乎是硬编码的,以利用这一特定输入数据的特性。但根据Alexander的要求:

# source data is stocks="[{ID:0,N:'3ergy',SIP:'',NC:'502',R:'',...},
#                         {ID:1,N:'aaaaa',SIP:'',NC:'nnn',R:'nn',...}, .... ]"
Stocks = [] #parsed result
i = 1
while i>0:
   end = stocks.find('}',i)
   stock = stocks[i+1:end]
   parts = stock.split(',')
   Stock = {}
   for part in parts:
      key,value=part.split(':')
      Stock[key] = value.strip("'"))
   Stocks.append(Stock)
   i = stocks.find('{',end)

相关问题 更多 >