python 正则表达式处理不规范json
原字符串 { key1: "value", key2:"value", key3:"value"...}
需要把key1, key2, key3这种都加上引号,变成:
{ "key1": "value", "key2":"value", "key3":"value"...}
需要把key1, key2, key3这种都加上引号,变成:
{ "key1": "value", "key2":"value", "key3":"value"...}
实现代码:
before = '{ key1: "value", key2:"value", key3:"value"}' re_item = re.compile(r'(?<=[{,])\w+') after = re_item.sub("\"\g<0>\"", inputvalue)
搞定!
其中(?<=...)表示之前的字符串内容需要匹配表达式才能成功匹配,但是不消耗字符串内容
如(?<=[{,])表示在{或,之后的字符串
个人感觉正则表达式确实非常强大,用正则表达式写出的代码,可以用短小精悍来形容,但是缺点也很明显,就是代码可读性太差。