首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Python确保JSON中的匹配引用?

如何使用Python确保JSON中的匹配引用?
EN

Stack Overflow用户
提问于 2018-06-15 05:07:11
回答 1查看 83关注 0票数 0

我在解析一个文本时,有时会得到以下结果

代码语言:javascript
复制
{"name":"John","last" : Doe", "Food":"Fries","Coffee" : "Need}

我在这里处理的是别人的数据,所以我只需要处理它。

有没有可能使用正则表达式(或其他表达式),这样我就可以通读文件,每当我发现不匹配的引号时,就通过匹配它们来修改文件。

所以我最终会得到

代码语言:javascript
复制
{"name":"John","last" : "Doe", "Food":"Fries","Coffee" : "Need"}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-15 05:57:08

如果缺少引号是文本的唯一问题字段中没有转义引号,那么您可以通过查找四种类型的不规则来修复文本。

代码语言:javascript
复制
s = '{name":"John","last" : Doe", "Food:"Fries","Coffee" : "Need}' 

分号后缺少引号:

代码语言:javascript
复制
s = re.sub('"\s*:\s*(?=[^\s"])', '":"', s)

在分号前缺少引号:

代码语言:javascript
复制
s = re.sub('(?<=[^\s"])\s*:\s*"', '":"', s)

右大括号前缺少引号:

代码语言:javascript
复制
s = re.sub('(?<=[^\s"])\s*\}', '"}', s)

左大括号后缺少引号:

代码语言:javascript
复制
s = re.sub('\{\s*(?=[^\s"])', '{"', s)

一个接一个地应用所有四种转换,希望问题已经解决:

代码语言:javascript
复制
print(s)
#{"name":"John","last":"Doe", "Food":"Fries","Coffee" : "Need"}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50865953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档