【发布时间】:2019-11-05 18:40:08
【问题描述】:
我有一个 json 文件,其中所有整数和浮点数都表示为字符串:
[{"x": "123.45", "stuff": "things"}]
我一直在试图弄清楚是否有一种简单的方法可以将其读入并解码成字典,从而使所有数字字符串都转换回数字:{"x": 123.45, "stuff": "things"}
我认为 JSONDecoder 应该具有此功能,但我似乎无法弄清楚。我试过设置parse_float=Decimal,但这似乎没有任何作用。
有没有人在不创建全新功能的情况下有任何想法?
【问题讨论】:
-
没有 JSON 解码器可以知道哪些字符串应该是浮点数,哪些应该是字符串。您必须自己明确地将您知道应该是浮点数的特定键转换为浮点数。
-
@deceze,哦,这可能是可以接受的,因为键应该始终相同。您介意发布一个答案,说明如何做到这一点吗?我在哪里指定一个总是浮点数或整数的键列表?或者你的意思是像做一个单独的函数来做到这一点?
-
看看这个问题:stackoverflow.com/questions/45068797/… 我猜你需要的是 json.loads(c, object_hook=_decode)
标签: python json python-3.x decode