【发布时间】:2019-04-02 16:11:29
【问题描述】:
众所周知,json 将 dict 的整数键转换为字符串:
import json
print json.dumps({1: [2.5, 2.5, 2.5], 2: [3, 3, 3, 3]})
# {"1": [2.5, 2.5, 2.5], "2": [3, 3, 3, 3]}
在加载整数键时最干净的方法是什么?
d = json.loads('{"1": [2.5, 2.5, 2.5], "2": [3, 3, 3, 3]}')
print d
# {u'1': [2.5, 2.5, 2.5], u'2': [3, 3, 3, 3]}
我在想:
d = {int(k): d[k] for k in d}
但是有没有一种更简洁的方法来处理带有 JSON / Python 整数键的字典,而不需要后验的键转换?
【问题讨论】:
-
用什么方式清理?你可以做
{int(k):v for k,v in d.items()} -
@juanpa.arrivillaga 为了避免转换,将其作为带有整数键的字典直接加载。
-
好吧,由于 JSON 需要字符串键,您要么必须编写自己的解码器(使用
json库很简单),要么直接转换,或者选择另一种序列化格式。跨度> -
@juanpa.arrivillaga 嗯,好的,我想这就是答案(如果你想发布的话)。
标签: python json dictionary