我有一个json格式的字符串
{"1":"abc"abc"abc","2":"xyz"xyz"xyz"}
但是如果我想把它转换成json数据,我需要删除'''between''并得到如下字符串
{"1":"abcabcabc","2":"xyzxyzxyz"}
我试过用回复sub但失败了。有人能帮我吗? 我的剧本如下:
a='{"1":"abc"de"fg","2":"xyz"xyz"xyz"}'
r = re.compile(r'(?<!\:)(?<=.+)"|(?<!,)"|"(?!}|,)')
b = r.sub('', a)
print(b)
当我运行脚本时,结果如下:
Traceback (most recent call last):
File "./_t1.py", line 5, in <module>
r = re.compile(r'(?<!\:)(?<=.+)"|(?<!,)"|"(?!}|,)')
File "/home/emc/ssd/anaconda3/lib/python3.6/re.py", line 233, in compile
return _compile(pattern, flags)
File "/home/emc/ssd/anaconda3/lib/python3.6/re.py", line 301, in _compile
p = sre_compile.compile(pattern, flags)
File "/home/emc/ssd/anaconda3/lib/python3.6/sre_compile.py", line 566, in compile
code = _code(p, flags)
File "/home/emc/ssd/anaconda3/lib/python3.6/sre_compile.py", line 551, in _code
_compile(code, p.data, flags)
File "/home/emc/ssd/anaconda3/lib/python3.6/sre_compile.py", line 187, in _compile
_compile(code, av, flags)
File "/home/emc/ssd/anaconda3/lib/python3.6/sre_compile.py", line 160, in _compile
raise error("look-behind requires fixed-width pattern")
sre_constants.error: look-behind requires fixed-width pattern
如果您的数据不包含
,
或:
,那么这是可行的,因为我们需要一些锚来解开这个混乱:(?:[^,:]|")
组,告诉它匹配引号或除逗号和冒号以外的任何内容。你知道吗现在
b
可以解析为json:现在,如果字符串包含
:
,该怎么办?上面的解决方案不起作用。我们必须调整它:":"
分割(可能有空格)":"
连接回元素像这样:
正确解析
json
:相关问题 更多 >
编程相关推荐