Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式只匹配完全匹配,不匹配组_Python_Json_Regex_Findall - Fatal编程技术网

Python 正则表达式只匹配完全匹配,不匹配组

Python 正则表达式只匹配完全匹配,不匹配组,python,json,regex,findall,Python,Json,Regex,Findall,我在python中使用re.findall匹配日志文件的每一行,并从该行提取json数据。下面是一行示例: <134>1 2017-01-23T10:54:47.111-01:11 bla blabla - - <-- '{"jsondata": "1.0", "result": null, "id": 0}' 但我需要它以json格式从该行返回json数据: {"jsonrpc": "2.0", "result": null, "id": 2530} 当我把正则表达式

我在python中使用re.findall匹配日志文件的每一行,并从该行提取json数据。下面是一行示例:

<134>1 2017-01-23T10:54:47.111-01:11 bla blabla  - -  <-- '{"jsondata": "1.0", "result": null, "id": 0}'
但我需要它以json格式从该行返回json数据:

{"jsonrpc": "2.0", "result": null, "id": 2530}
当我把正则表达式放入正则表达式101时

\'\{(.*?)\}\' 
我有一场小组赛

"jsondata": "1.0", "result": null, "id": 0
完全符合

'{"jsondata": "1.0", "result": null, "id": 0}'

这告诉我findall正在返回组。如何修复此问题以返回完全匹配的json对象?

尝试使用以下正则表达式:

r"({.*?})"
这应该包含“{…}”中的所有内容


这工作做得很好。我可以通过访问list元素来访问json数据。谢谢您!
'{"jsondata": "1.0", "result": null, "id": 0}'
r"({.*?})"
log_line = 'sdgfjk fgkglhdfg <-- fdfsd dsdasds {"jsondata": "1.0", "result":  null, "id": 0} dasdsad khfsldfg'

print(re.findall(r"({.*?})", log_line))
['{"jsondata": "1.0", "result": null, "id": 0}']