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



我从Web服务中获取了一大块类似Json的数据。 数据与 JSON 具有相同的格式,但:

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

示例为:

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

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

正如 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'

我犹豫要不要分享我的解决方案,因为它几乎是硬编码的,可以利用这个特定输入数据的特征。 但是同意亚历山大的要求,这里是:

# 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)

最新更新