我在 python 中有这个字符串
{ "rval": 0, "param_size": 4, "param": [ 8, 0, 0, 0 ], "session_id": 4 }
如何以正确的方式过滤此字符串以接收此示例中的数字 8?
所有数字和参数都可以改变
我的方法
re.findall('"param": (.+) }',data)[0]
但它输出
[ 8, 0, 0, 0 ], "session_id": 4
而不是 8
请您参考如下方法:
甚至不必费心对其进行正则表达式处理。将字符串转换为 Python 字典(使用 json 或 literal_eval 模块)然后简单地 d['param'][0]。
from ast import literal_eval
string = '{"rval": 0, "param_size": 4, "param": [ 8, 0, 0, 0 ], "session_id": 4 }'
d = literal_eval(string)
print(d['param'][0])
# 8
