Python使用空格分隔的子字段分析JSON值

时间:2014-07-07 20:25:23

标签: python json

我需要像这样解析JSON:

{
    "entity": " a=123455 b=234234 c=S d=CO e=1 f=user1 timestamp=null",
    "otherField": "text"
}

我想分别获取a,b,c,d,e,timestamp的值。有没有比将实体值赋值给字符串更好的方法,然后用REGEX解析?

2 个答案:

答案 0 :(得分:2)

JSON标准没有任何内容可以为您解析该值,您必须在Python中执行此操作。

将该字符串拆分为空格,然后在=

上可能更容易
entities = dict(keyvalue.split('=', 1) for keyvalue in data['entity'].split())

这导致:

>>> data = {'entity': " a=123455 b=234234 c=S d=CO e=1 f=user1 timestamp=null"}
>>> dict(keyvalue.split('=', 1) for keyvalue in data['entity'].split())
{'a': '123455', 'c': 'S', 'b': '234234', 'e': '1', 'd': 'CO', 'f': 'user1', 'timestamp': 'null'}

答案 1 :(得分:0)

这个怎么样:

>>> dic = dict(item.split("=") for item in s['entity'].strip().split(" "))
>>> dic 
>>> {'a': '123455', 'c': 'S', 'b': '234234', 'e': '1', 'd': 'CO', 'f': 'user1', 'timestamp':'null'}
>>> dic['a']
'123455'
>>> dic['b']
'234234'
>>> dic['c']
'S'
>>> dic['d']
'CO'
>>>