我有一个接收到格式错误的JSON字符串的应用,如下所示:
{'username' : 'xirby'}
我需要将双引号"替换为单引号'
遵循以下规则(我认为):
{后带有一个或多个空格的单引号
位于一个或多个空格和:之前
在:之后有一个空格
位于一个或多个空格和}之前
因此,此字符串{'username' : 'xirby'}或
{ 'username' : 'xirby' }
将被转换为:
{"username" :"xirby"}
更新:
还有可能是格式错误的JSON字符串:
{ 'message' : 'there's not much to say' }
在此示例中,不应替换消息值内的单引号。
不要为此使用正则表达式,请参阅我的答案
该正则表达式将捕获所有适当的单引号和相关的空格,而忽略消息中的单引号。可以使用双引号替换捕获的字符,同时保留JSON格式。它还通用化为具有多个消息(以逗号,分隔)的JSON字符串。
((?<={)\s*\'|(?<=,)\s*\'|\'\s*(?=:)|(?<=:)\s*\'|\'\s*(?=,)|\'\s*(?=}))
我知道您标记了Java的问题,但我对python更为熟悉。这是一个示例示例,说明如何在python中将单引号替换为双引号&#x