![](/img/trans.png)
[英]Create a dictionary with a fixed set of keys from reading text file in Python
[英]Reading dictionary from text file converts integer keys to string: Python
我有一个文件,其中包含来自json.dumps(d)的字符串,其中d是最初创建的字典:
>> d = {1: [1,2,3], 2:[5,6,7], 3:[7,8,9]} # integer keys
当我打开这个文件并将字典放入RAM时:
>> d = json.loads(open('file.txt', 'r').read())
>> d[1]
## Gives error
>> d['1']
## doesn't give error
我在保存字典时做错了吗?
不,你误解了JSON。 JSON对象中的名称必须是字符串; 即使使用的编程语言可以支持它们,它们也不能是任何其他类型。 如果您希望它们在解码后不是字符串,那么您需要在单独的解码器中实现额外的解析。 考虑使用json.JSONDecoder
的object_hook
或object_pair_hook
参数。
这是完全正常的。 只有json字符串中的数组可以通过position调用(整数调用它)。 在你的情况下。 如果你看一下json.dumps({1: [1,2,3], 2:[5,6,7], 3:[7,8,9]})
你会看到你得到{"1": [1, 2, 3], "2": [5, 6, 7], "3": [7, 8, 9]}
。 因此,当您尝试访问该值时,字符串键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.