繁体   English   中英

当名称是保留关键字时访问 class 的属性 - Python

[英]Access to an attribute of a class when the name is a reserved keyword- Python

我有一个来自 API 调用(JSON)的“项目”object(<class 'zenpy.lib.api_objects.Comment'>),如下所示:

{
"id": 1,
"type": 10,
"via": {
     "from":{
        "id": "511",
        "name": "a"
     },
     "to":{
        "id": "999",
        "name": "b"
     }
   }
}

所以,当我这样做时

print(item.via.to['id']) 

它工作正常,但是当我尝试这样做时:

print(item.via.from['id']) 

我收到错误 SyntaxError:“来自”的语法无效。 因为是保留关键字。

我怎样才能访问该值? 我无法更改“发件人”名称,因为它来自 API 调用。

谢谢你。

查看您正在引用的 API 的代码,它看起来像是保留字,它们的类的约定是在它前面加上一个前导_看这里

所以尝试使用item.via._from , _from 是一个有效的标识符。

最好也可以在 object 上调用to_dict甚至是实际较低级别的__dict__并通过字符串访问它,但我认为第一个应该可以工作:


x = item.via._from.id


x = item.to_dict()["via"]["from"]["id"]

# or worst case…

x = item.via.__dict__["from"].id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM