替换/删除python字符串中的内部引用

时间:2015-08-10 00:20:10

标签: python regex string

我有一个字符串:

"""
{
   "description":"123456 asdad asa "0-asd;'asddf1231" "12"  ",
   "sale":12
} 
"""

我想将其解码为JSON,但描述字段格式不正确。我正在考虑使用re.sub从描述字段中删除所有内部引号,但到目前为止我还没有运气。有没有人有一个很好的正则表达式提示?谢谢!

2 个答案:

答案 0 :(得分:2)

可以尝试这个,但应该有更好的方法。

(?:.*?(?={))|(?:(?<=}).*)|(?:(?<!:)"(?!,))

Regex live here.

答案 1 :(得分:0)

我现在就回答这个问题,以防万一它真的适合你;如果没有,我会修改这个答案。

>>> import json
>>> import re
>>>
>>> s =  """ { "description":"123456 asdad asa "0" "12" ", "sale":12 } """
>>>
>>> new_s = re.sub('"(\d+)"', r'\1', s)
>>> new_s
' { "description":"123456 asdad asa 0 12 ", "sale":12 } '
>>>
>>> d = json.loads(new_s)
>>> d
{u'description': u'123456 asdad asa 0 12 ', u'sale': 12}