【发布时间】:2020-10-19 00:44:02
【问题描述】:
首先让我们创建一个嵌套对象,它可以在 python 中 jsonable:
ExampleObject1 = [ {'a':0, 'b':1} , {'c':2, 'd':3} ]
ExampleObject2 = [ {'a':0, 'b':ExampleObject1}, {'c':2, 'd':3} ]
ExampleObject3 = [ {'a':0, 'b':ExampleObject1}, {'c':ExampleObject2, 'd':3} ]
我们可以使用链式方括号轻松访问元素,如下所示:
print ( ExampleObject3[0]['b'][0]['b'] )
>>> 1
如何使用键列表而不是方括号来访问相同的元素?
print ( ExampleObject3[ (0,'b',0,'b') ] )
>>> TypeError: list indices must be integers or slices, not tuple
注意:我可以通过这种方式访问numpyarrays。
一旦我尝试使用逗号分隔键访问字典,事情就会中断。
请参阅:Store Slice Index as Object。
原因:我只是希望能够传递一个任意键,该键可用于稍后从内存中的某个大型对象获取数据。
编辑:如果能够使用键更改原始对象中的值也很好:
ExampleObject3[ (0,'b',0,'b') ] = 'alpha'
【问题讨论】:
-
Numpy 数组覆盖
__getitem__以允许这种语法。list不能那样工作。 -
必须有其他方法来携带访问通用对象的密钥
-
我还应该补充一点——如果我以后可以用密钥修改原始对象,那将是最有用的。 ExampleObject3[ (0,'b',0,'b') ] = 123 或其他一些新值
标签: python json object indexing key