如何提取花括号内的字符串花括号内的字符串必须是正则表达式和PYTHON

2024-09-29 23:27:57 发布

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

我想使用正则表达式来提取花括号内花括号中的字符串,因为有数百万行,而花括号内的位置在“较大”的花括号中总是不同的

下面是字符串:

{'eventData': {'type': 'page', 'name': 'chicken 2'}, 
'eventId': '1993', 
'deviceType': 'keroppi', 
'pageUrl': '/chicken 2', 
'version': '1.0.0.1999-10_7_2020__4_18_30', 
'sessionGUID': 'f4123f21-31ad-4e83-ba77-41231238', 
'locationid': '0601eba9-1259-4ae6-bad5-7d1231239', 
'eventDescription': 'Page Load'}

可能是这样的:

{'eventId': '1993', 
'deviceType': 'keroppi', 
'pageUrl': '/chicken 2', 
'eventData': {'type': 'page', 'name': 'chicken 2'},
'version': '1.0.0.1999-10_7_2020__4_18_30', 
'sessionGUID': 'f4123f21-31ad-4e83-ba77-41231238', 
'locationid': '0601eba9-1259-4ae6-bad5-7d1231239', 
'eventDescription': 'Page Load'}

我想要的只是内部的花括号:{'type': 'page', 'name': 'chicken 2'}

"'eventData':"之后和","之前获取字符串的正则表达式是什么


Tags: 字符串nameversiontypepage括号chickendevicetype
1条回答
网友
1楼 · 发布于 2024-09-29 23:27:57

dict上使用^{}

In [2494]: s = {'eventData': {'type': 'page', 'name': 'chicken 2'},
      ...: 'eventId': '1993',
      ...: 'deviceType': 'keroppi',
      ...: 'pageUrl': '/chicken 2',
      ...: 'version': '1.0.0.1999-10_7_2020__4_18_30',
      ...: 'sessionGUID': 'f4123f21-31ad-4e83-ba77-41231238',
      ...: 'locationid': '0601eba9-1259-4ae6-bad5-7d1231239',
      ...: 'eventDescription': 'Page Load'}

In [2495]: s.get('eventData')
Out[2495]: {'type': 'page', 'name': 'chicken 2'}

In [2496]: s1 = {'eventId': '1993',
      ...: 'deviceType': 'keroppi',
      ...: 'pageUrl': '/chicken 2',
      ...: 'eventData': {'type': 'page', 'name': 'chicken 2'},
      ...: 'version': '1.0.0.1999-10_7_2020__4_18_30',
      ...: 'sessionGUID': 'f4123f21-31ad-4e83-ba77-41231238',
      ...: 'locationid': '0601eba9-1259-4ae6-bad5-7d1231239',
      ...: 'eventDescription': 'Page Load'}

In [2497]: s1.get('eventData')
Out[2497]: {'type': 'page', 'name': 'chicken 2'}

如果是JSON的字符串表示,则使用:

import ast
ast.literal_eval(s).get('eventData')

相关问题 更多 >

    热门问题