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

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

我有一个来自 API 调用 (JSON) 的“项目”对象 (),如下所示:

{
"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']) 

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

如何访问该值?我无法更改“发件人”名称,因为它来自 API 电话。

谢谢。

查看您正在引用的 API 的代码,它看起来像是保留字,它们的 类 的约定是在其前面加上前导 _ (looking here)

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

也可能最好在对象上调用 to_dict 甚至实际的较低级别 __dict__ 并通过字符串访问它,但我认为第一个应该有效:


x = item.via._from.id


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

# or worst case…

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