2024-04-19 06:51:04 发布
网友
我用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
import ast, json text = '{ "rval": 0, "param_size": 4, "param": [ 8, 0, 0, 0 ], "session_id": 4 }'
Json码:
dict1 = json.loads(text) dict1["param"][0]
评估:
dict2 = ast.literal_eval(text) dict2["param"][0]
这两个方法都将字符串转换为python dict对象,您可以通过dict[key]访问这个dict对象
dict[key]
我在python2中测试了所有代码,我相信您的文本中有一些非法字符,因此我建议使用regex:
import re text = '{ "rval": 0, "param_size": 4, "param": [ 8, 0, 0, 0 ], "session_id": 4 }' match = re.search(r'"param": \[ (\d+),', text) match.group(1)
输出:
'8'
甚至不用费心去调整它。将字符串转换为Python字典(使用json或literal_eval模块),然后只需d['param'][0]。你知道吗
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
Json码:
评估:
这两个方法都将字符串转换为python dict对象,您可以通过
dict[key]
访问这个dict对象我在python2中测试了所有代码,我相信您的文本中有一些非法字符,因此我建议使用regex:
输出:
甚至不用费心去调整它。将字符串转换为Python字典(使用
json
或literal_eval
模块),然后只需d['param'][0]
。你知道吗相关问题 更多 >
编程相关推荐