![](/img/trans.png)
[英]Invalid UpdateExpression: Attribute name is a reserved keyword; reserved keyword: value
[英]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.