我想拆分以下字符串以分别获取每个属性:
String_one: 'archived': True, 'id': '30znq1', '_has_fetched': True
String_two: \\'hidden\\': False, \\'user_reports\\': [], \\'num_reports\\': None
我知道所有属性都以",'"或",\\'" 最初我只是使用了两个string.spilt()
1) line.split(', \'')
2) line.split(', \\\'')
这些都完成了这项工作,但我正在处理大量数据,而且这些数据都非常通用,并且模式在数据中的某处不匹配。
所以我尝试了一个re.split:
reg_split_no_esc = re.compile(', \'(.*\': .*)')
reg_split_esc = re.compile(', \\\'(.*\\\': .*)')
line = re.split(reg_split_esc, line)
line = re.split(reg_split_no_esc, line)
正则表达式旨在找到第一个",\'"如果它后跟字符单引号和冒号,它就意味着要抓住",\'"。
之后的内容。reg_split_no_esc在第一个拆分条件上拆分但不再拆分,另一个模式不起作用。
任何帮助都会非常感激
编辑: 我的第一个正则表达式有效,但它只拆分第一个元素,其余部分取消拆分,所以它看起来像这样:
_uniq': None
suggested_sort': None, 'secure_media_embed': {} 'report_reasons': None, '_params': {}