python - 使用python,如何检查字符串是否是有效的json对象,即使字符串使用单引号?
问题描述
假设我有一个如下所示的字符串:
"{'apple': 1, 'orange': 2}"
如何确定这是否是有效的 json 对象?json.loads() 不起作用,因为字符串使用单引号而不是双引号。用双引号替换所有单引号似乎有风险,因为单引号被转义,如下所示:
"{'sentence':'let\'s solve the issue'}"
用双引号替换所有单引号使句子:让我们解决问题,这是不正确的。
我尝试了 demjson,https: //pypi.org/project/demjson/,它确实有效,但速度非常慢。有任何想法吗?
解决方案
JSON 规范要求对象具有字符串键和双引号字符串 。
带有单引号字段的类字典对象不是 JSON。
您拥有的是其他格式。
它可能是JSON5兼容的,它允许单引号字符串并有自己的JSON5 python 库。
它可能是一个糟糕的 JSON 实现,但这应该在服务器上修复。JSON 输出通常是使用经过良好测试的库实现的,而仅仅是 JSON-ish 的输出是一种不好的代码味道。它应该让一个理性的人想知道还有什么其他草率的代码。
推荐阅读
- ios - 与 iOS 中的 Web 相比,为什么在移动设备中获取的数据更少
- python - 在 Python 中,如何让扩展类元素显示在自动完成中?
- types - 如何将 type_info 转换为 Objective-c 的“类”类型
- asp.net - Rest API - 部分更新
- git - Git - 作者的 rebase 提交
- r - Scale_y_continous 不需要离散值
- java - 在智能合约中获取交易创建者的身份?
- javascript - redux-saga:在令牌刷新后重试捕获的动作
- ios - 使用 twitter 登录总是返回错误
- html - Angular 4:如何在输入列表中使用模式