【发布时间】:2021-01-18 18:29:06
【问题描述】:
当我尝试运行此代码时遇到错误。
import ujson as json
input = '{"a":NaN}'
print(json.loads(input))
错误
print(json.loads(input))
ValueError: Expected object or value
我浏览了一些博客,发现 ujson 在执行json.loads 操作时不会处理nan 或NaN 值。
我的最终目标: 我想要
- 使用ujson将字符串加载到JSON-FORMAT中
- 处理这种类型的 VALUE ERRORS
- 将输入字符串加载到 JSON 中
注意:我的输入可能是嵌套的 json 结构
input = {"name":"siva","details":{"id":"111","qualification":nan},"marks":[{"grade1":90,"grade2":null,"grade3":NaN}]}
预期输出
{"a":NaN}
{"name":"siva","details":{"id":"111","qualification":nan},"marks":[{"grade1":90,"grade2":null,"grade3":NaN}]}
谁能为此提出解决方案?
【问题讨论】:
-
为什么不使用
json而不是ujson?它适用于你的例子 -
解析json时不能处理值错误。它要么完全正确,要么有错误。如果你想检测无效值,你必须自己做。您的意思是:'input = '{"a":null}'。 ?
-
@SpiderPig1297,
ujson比json快,这就是为什么我要使用ujson -
顺便说一句,不要使用
input作为变量名
标签: python json python-3.x ujson