嗨,我是正则表达式的新手,想在python中使用它
试图删除json字符串之间的特定字符串:
例如,我的Json字符串是:
{“ tableName”:“ avzConf”,“ rows”:[{“ Comp”:“ mster”,“ Conf”:“ [{” name“:” state“,” dispN“:” c_d_test“,” “:{” updated_at“:” 2020-09-16T06:33:07.684504Z“,” updated_by“:” Abc_xyzabc_xyz@uuvvww.com“}},{” name“:” stClu“,” dNme“:” tab( s)Updatedd“,”“:{” updated_at“:” 2020-09-21T10:17:48.307874Z“,” updated_by“:” Def Ghidef_ghi@uuvvww.com“}} }] }
要删除:“”:{“ updated_at”:“ 2020-09-16T06:33:07.684504Z”,“ updated_by”:“ Abc_xyzabc_xyz@uuvvww.com”}
预期输出: {“ tableName”:“ avzConf”,“ rows”:[{“ Comp”:“ mster”,“ Conf”:“ [{” name“:” state“ ,“ dispN”:“ c_d_test”},{“名称”:“ stClu”,“ dNme”:“标签已更新”} }] }
我尝试过((\“ \”:{\“ updated_ \ w +)(。*)(> \”)
在我的代码中使用:
重新导入
line = re.sub(r“ updated_ \ w +(。*)(。com>)”,'',json_str)
但是它也选择了行之间,因为出现了两次“”:{“ updated_at \和“ updated_by”
并保留特殊字符“”:{“”}
如何完全删除“”:{“ updated_at”:“ 2020-09-16T06:33:07.684504Z”,“ updated_by”:“ Abc_xyzabc_xyz@uuvvww.com”}
答案 0 :(得分:1)
尝试一下:
\{\"updated_at[^{]+\}
通过允许除{
以外的任何字符在两者之间出现一次或多次,将其从相关的开头}
匹配到相关的结束{
答案 1 :(得分:0)
使用python json字符串,我可以删除那些不需要的字段,如下所示: 这已完全删除了不需要的空键,并将其替换为},以完美地完成json。
regex as \,\s\\\"\\\":\s\{\\\"updated_at[^{]+\}[^\]]
json_str = str({"tableName":"avzConf","rows":[{"Comp":"mster","Conf": "[{"name": "state", "dispN": "c_d_test", "": {"updated_at": "2020-09-16T06:33:07.684504Z", "updated_by": "Abc_xyzabc_xyz@uuvvww.com"}}, {"name": "stClu", "dNme": "tab(s) Updatedd", "": {"updated_at": "2020-09-21T10:17:48.307874Z", "updated_by": "Def Ghidef_ghi@uuvvww.com"}} }] })
import re
line = re.sub(r"\,\s\\\"\\\":\s\{\\\"updated_at[^{]+\}",'},', json_str)