我目前有以下格式的JSON。一些键值的格式不正确,因为它们缺少双引号(“)
如何将这些键值修改为双引号?
{
Name: "test",
Address: "xyz",
"Age": 40,
"Info": "test"
}
要求:
{
"Name": "test",
"Address": "xyz",
"Age": 40,
"Info": "test"
}
使用下面的帖子,我能够在上面的INVALID JSON中找到这样的键值,但是,我找不到一个有效的方法来用双引号替换这些找到的值。
s = "Example: String"
out = re.findall(r'\w+:', s)
5条答案
按热度按时间vddsk6oq1#
使用正则表达式:
输出:
wnrlj8wa2#
可以使用PyYaml,因为JSON是Yaml的子集,所以pyyaml可以克服引号的不足。
示例
lvmkulzt3#
我在JSON中遇到了一些其他的问题,我想分享最终的解决方案。
1.第一行将修复键的双引号问题,即Name:“试验”
1.第二行将修复值的双引号问题,即“Info”:测试
此外,上述内容将排除日期时间戳内的双引号,其具有:(冒号)在它们里面。
yvgpqqbh4#
你可以使用在线格式器。我知道他们中的大多数都是抛出错误没有双引号,但下面一个似乎处理得很好!
JSON Formatter
xqk2d5yq5#
regex方法可能很脆弱,我建议您找一个可以解析缺少引号的JSON文本的库。
例如,在Kotlin1.4中,解析JSON字符串的标准方法是使用
Json.decodeFromString
,但是,您可以使用Json { isLenient = true }.decodeFromString
来放宽对引号的要求,下面是JUnit中的一个完整示例。