为了账号安全,请及时绑定邮箱和手机立即绑定

为什么json的key只能是string?

为什么json的key只能是string?

胡说叔叔 2018-08-10 11:10:39
在python中,字典的key可以是任意immutable对象,但json的key却只能是string。在stackoverflow上搜到的相关问题,Why JSON allows only string to be a key?最佳答案是说json是为了数据在不同程序之间相互传递,所以string能保证不同的程序语言都能支持这种数据结构。但我还是不明白为什么int、float之类的不行。json.dumps({1:1,2:2})'{"1": 1, "2": 2}
查看完整描述

1 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

首先JSON是Javascript的子集,而在Javascript中只有字符串、整型等5个数据类型,而后在其他编程语言中被使用,其他的语言的实现都是为了兼容JSON,比如Python标准库的json模块。详情可以查看json 
至于JSON中为什么采用字符串作为键主要在于,首先需要是1个不可变的对象,因此只能是字符串、整型、浮点型这样的数据类型了,而在计算机中1个整型需要占用4个字节的内存,而字符只占用1个字节。 
另外,使用JSON主要是为了传输数据,这个网络传输的过程中会丢失精度也是需要考虑的,而整型和浮点数都会出现精度的丢失。 
另外使用字符串的形式还可以使用压缩算法进行压缩,进而节省带宽。 
因此字符串是最佳的选择。

查看完整回答
反对 回复 2018-09-15
  • 1 回答
  • 0 关注
  • 2020 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信