对象key值为数字时的处理
Posted 鬼鬼oo0
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象key值为数字时的处理相关的知识,希望对你有一定的参考价值。
先说解决办法:
通过a[key]的方式获取。
具体场景是这样的:
有一个对象的key是数字组成的,这时候使用a.b的形式就不能获取到相应的value值,
如下图:
a.‘111‘会报错。
特别说明:
a[‘111‘]和a[111]两种写法都是一样的,没有什么区别,此用法与数组用下标访问是相同的。
另:
当对象的key为一个变量时,并且使用在循环中,那我们可以通过data[‘key‘]这种方式来动态生成对象,eg:
总结:
1.对象的key一般应使用合法的变量名(字母或下划线开头的包括字母、下划线和数字的字符串) ,这种情况下通过a.key 或者 a[‘key‘]的方式都可以获取到相应的value值。
2.当特殊场景key为数字的情况下,只能通过a[‘key‘]的方式来获取相应的value值。
如当建立一个与数据库中id一一对应的map对象的时候,
可直接用id的数值做key,虽然你可以给它加上一个字母前缀来让它符合合法的变量名的标准,
并让它的数据能通过data.key的方式访问,
但如果数据量非常大的话,
为每个id都加一个前缀,+字符连接运算也是要消耗性能的,
特别是在很少需要采用data.key方式去访问属性的情况下,
那么可以抛弃此调用方式,直接用数字做key也未尝不可,
除了key名称不符合合法变量名的标准之外,似乎并没有其它损失;
以上是关于对象key值为数字时的处理的主要内容,如果未能解决你的问题,请参考以下文章
TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是使用 Python 3.7 时的“NoneType”