从字符串

时间:2015-07-17 07:44:33

标签: python string parsing

我通过Python中的API接收以下字符串:

{"id":13021,"buys":{"quantity":3494,"unit_price":257},"sells":{"quantity":3187,"unit_price":433}}

我可以通过"id"可靠地隔离.find字段,但"buys"的{​​{1}}和"sells"条目更难以恢复,因为它们不会#39} ; t共享唯一标识符。我最好用正则表达式解析整个事情,还是Python提供了一个更简单的解决方案来访问所需的子字符串?

2 个答案:

答案 0 :(得分:1)

您的输入数据是JSON。在这种情况下使用regexp是过度的。您可以将其转换为dict并像

一样使用它
import json
instr = '{"id":13021,"buys":{"quantity":3494,"unit_price":257},"sells":{"quantity":3187,"unit_price":433}}'

injs = json.loads(instr)

injs["buys"]
Out[62]: {'quantity': 3494, 'unit_price': 257}

答案 1 :(得分:1)

>>> from ast import literal_eval
>>> a = instr = '{"id":13021,"buys":{"quantity":3494,"unit_price":257},"sells":{"quantity":3187,"unit_price":433}}'
>>> b=literal_eval(a)
>>> b['sells']
{'unit_price': 433, 'quantity': 3187}
>>>