我正在寻找一个可以找到“}”的正则表达式{";此模式用于在python中更正json对象
有些人的帮助会很有帮助。 json模式如下所示:我正在寻找一个可以找到“}”的正则表达式{";此模式用于在python中更正json对象,python,json,regex,Python,Json,Regex,有些人的帮助会很有帮助。 json模式如下所示: { "type": "object", "properties": ["Street", "Avenue", "Boulevard"] } } { "type": "object", "properties": ["Street", "Avenue", "Boulevard"] } } 目前它不是json格式,我正在尝试正确格式化它,以便json.loads方法可以解析多个对象 到目前为止,我已经得到了“}\r\n}”和
{
"type": "object",
"properties": ["Street", "Avenue", "Boulevard"]
}
}
{
"type": "object",
"properties": ["Street", "Avenue", "Boulevard"]
}
}
目前它不是json格式,我正在尝试正确格式化它,以便json.loads方法可以解析多个对象
到目前为止,我已经得到了“}\r\n}”和“*?(?=}\r\n})”这在我的JSON文件中不起作用。它说没有匹配项,但我能够在一个在线验证器中验证正则表达式的含义。您可以尝试匹配
}{
(?s)}[^{}]*\}[^{}]*{
在python脚本中
ss=""" (copy & paste your text in this area) """
regx= re.compile(r'(?s)}[^{}]*\}[^{}]*{')
print(regx.sub('SomethingYouWant',ss)) # replace all target strings to SomethingYouWant
输出为
{
"type": "object",
"properties": ["Street", "Avenue", "Boulevard"]
SomethingYouWant
"type": "object",
"properties": ["Street", "Avenue", "Boulevard"]
}
}
类似于?预期的输出是什么?属性重复,所以您想要一个数组还是…?看起来您的数据有一个额外的“}”,这就是您想要摆脱的?完成后仍然不是json,因为DICT没有封装在外部容器中。你能发布示例代码让我们看看如何调用正则表达式吗?更大的问题是,它是什么格式?我向您展示了一个脆弱的黑客攻击,如果其中有匹配相同模式的合法大括号,它可能会爆炸。如果您正在读取多个单独的json流,然后希望将它们全部输出到一个列表中,那么您不希望降级到regexp黑客攻击文本。最好将所有数据转换为python数据,将它们插入列表中,然后将列表转换回Json。更易于维护。不幸的是,它可以在线工作,但由于某些原因不能与python一起工作。这是我的function.cont=re.findall(r“(?s)}[^{}]*\}[^{}]*{”,str(file.read()),flags=re.MULTILINE)你能上传一个示例文件吗?它必须在
单线中实现(dotall
)模式,不在multiline
模式下。请删除脚本中的flags=re.multiline
,如您所见,上述注释中的示例文本中没有匹配项。请上载另一个。此命令运行良好,re.findall(r)(?s)}[^{}]*\[^{}]*{,ss)