【发布时间】:2017-01-01 18:50:51
【问题描述】:
如果这是一个重复或简单的问题,我们深表歉意。
我最近一直在学习 Python(多年来一直在编写简单的 MATLAB 脚本)。我已经开始探索面向对象编程和 JSON。
我正在尝试使用 API 从服务器收集数据。当返回对象时,我主要使用语法访问特定数据字段做得很好。但是,我正在努力解决一个问题。我有一个行对象:
row = {"totalCount": 1, "results": [{"parentObjectId": 887, "contextData": ["Row 1"], "parentObjectType": "sheet", "objectId": 599, "text": "Text", "parentObjectName": "Data", "objectType": "row"}]}
我正在尝试访问单个结果 (result[0]) 的“objectId”属性。
我尝试过rowId = row.results[0].objectId,但得到错误“'SearchResultItem' object has no attribute 'objectId'”。
我也尝试过rowId = row.results[0]['objectId'],但得到错误“'SearchResultItem' object has no attribute '__getitem__'”。
--- 编辑:
print(reportingRow.results[0]['objectId'])
Traceback (most recent call last):
File "<ipython-input-46-14e026c273e3>", line 1, in <module>
print(reportingRow.results[0]['objectId'])
TypeError: 'SearchResultItem' object has no attribute '__getitem__'
我正在使用一个名为 Smartsheet 的工具。我正在使用 search_sheet 请求。 API 文档 (http://smartsheet-platform.github.io/api-docs/#search-sheet) 说“SearchResultItem”是一个包含许多属性的对象。它没有提供更多信息。
Smartsheet 模型可在此处找到:https://github.com/smartsheet-platform/smartsheet-python-sdk/tree/master/smartsheet/models。我目前正在查看 search_result.py 和 search_result_item.py 以找到答案/线索。
--- 编辑结束
感谢您的帮助!
【问题讨论】:
-
您的对象不是字典(它只是打印时看起来像的东西)。您的错误清楚地表明它是
SearchResultItem。我们不知道SearchResultItem实现了什么样的接口,因此我们无法为您提供帮助。 -
告诉我们
SearchResultItem是什么,它不是json字符串也不是dict。 -
请提供您从哪里获取数据的 API 的完整响应,然后让我们知道哪里出了问题。
-
我已经编辑了原始帖子以尝试回答您的问题。
标签: python oop smartsheet-api