如何向jsonpath提供输入字符串?

2024-04-20 04:25:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用jsonpath-rw获取JSON值,但是当我尝试:

input_string = "{'foo': [{'baz': 1}, {'baz': 2}]}"
result = [match.value for match in jsonpath_ex.find(input_string)]
print result 
[]

结果总是一个空列表。但是,当我使用以下代码时,我会得到一个结果:

^{pr2}$

比第一次输出好。当input_string = """{'foo': [{'baz': true}, {'baz': 2}]}"""是有效的JSON但不是有效的Python时,我得到:

  File "/usr/lib64/python2.7/ast.py", line 79, in _convert
    raise ValueError('malformed string')

但是当true在双引号中时,解析会成功。我如何提供input_string以便jsonpath-rw可以找到它?在


Tags: injsontrueforinputstringfoovalue
1条回答
网友
1楼 · 发布于 2024-04-20 04:25:42

为了使用字符串作为jsonpath_ex.find(input)的输入,请使用json模块来解析输入字符串,这将把它转换为Python对象。例如:

result_list = [match.value for match in jsonpath_ex.find(json.loads(input_string))]

相关问题 更多 >