Smartsheet python API:无法访问除附件名称、url 和 ID 之外的任何附件对象属性

Smartsheet python API: Cannot access any attachment object attributes except for attachment name, url, and ID

我正在尝试访问 Smartsheet 中附件的 createdAt 时间戳。我使用 get_attachment(sheetID, attachmentID) 函数创建了一个附件对象。

当我打印对象时,所有属性都显示有值。但是,当我尝试 return attachmentObject.createdAt 的单个值时,出现错误。它适用于 url、name 和 id 属性,但其他属性的 none。我如何访问这个显然存在的值!!!

这不是我的打印语句或其他任何格式,我已经尝试过在没有字符串格式、类型(属性)的情况下自行打印,只是声明一个基于它的变量。 None 有效。错误消息没有用,它只是属性的名称。即使我取出 try/except 循环,错误消息仍然只是属性名称。

我发现唯一真正有效的方法是一个非常矫揉造作的解决方法,如果可以避免的话我不想使用它。

我将整个对象变成一个字符串,将字符串拆分为“,”以创建一个列表。然后我将这些值中的每一个拆分为 ':' 以创建一个 key/value 对并基本上为每个项目创建一个字典。然后我获取时间戳的字符串并将其转换为带有 strptime 的日期时间对象。

它有效,但它确实不理想,必须有一种方法来实际访问对象属性。

attachment_attributes = ss.Attachments.get_attachment(res_id, attachment_id)
print(attachment_attributes)

try:
    print('ATTACHMENT CREATED AT: ' + str(attachment_attributes.createdAt))
except Exception as e:
    print('ERROR: ' + str(e))

try:
    print('ATTACHMENT NAME: ' + str(attachment_attributes.name))
except Exception as e:
    print('ERROR: ' + str(e))


CURRENT OUTPUT
-------------------------------------------------
print(attachment_attributes) returns this:

{"attachmentType": "FILE", 
"createdAt": "2019-10-07T16:52:01+00:00Z", 
"createdBy": {"email": "osian@coastalmountain.ca"}, 
"id": 1410102853953412, 
"mimeType": "application/pdf", 
"name": "documentname.pdf", 
"parentId": 2876391983212420, 
"parentType": "ROW", "sizeInKb": 183, 
"url": "https://s3.amazonaws.com/...", 
"urlExpiresInMillis": 120000}


print of individual attributes returns this:

ERROR: createdAt //Output for the createdAt attriute
ATTACHMENT NAME: documentname.pdf //Output for the name attribute


EXPECTED RESULT FOR PRINTING attachment_attributes.createdAt:
-------------------------------------------------
"ATTACHMENT CREATED AT: 2019-10-07T16:52:01+00:00Z"

尝试使用 attachment_attributes.created_at 访问该对象。 Python 在直接使用 API 时使用属性名称在 snake case, all lower case and separated by underscores. The Smartsheet Python SDK follows this convention as well. Even though the JSON objects returned show camel casing 中的约定,Smartsheet Python SDK 将响应序列化以使用 snake case 约定。那应该让你访问你需要的属性。这可以应用于所有多词属性。您其他人可能会工作,因为它们是单个单词属性名称。