道歉,如果这是一个重复或简单的问题。OOP - 访问对象数据
我最近一直在学Python(花了很多年编写简单的MATLAB脚本)。我已经开始探索面向对象编程和JSON。
我想使用API从服务器收集数据。当对象返回时,我通常使用语法来访问特定的数据字段。不过,我正在为此苦苦挣扎。我有一个行对象:
row = {"totalCount": 1, "results": [{"parentObjectId": 887, "contextData": ["Row 1"], "parentObjectType": "sheet", "objectId": 599, "text": "Text", "parentObjectName": "Data", "objectType": "row"}]}
我试图访问“OBJECTID”属性的单个结果(result[0]
)。
我试过rowId = row.results[0].objectId
,但得到错误“'SearchResultItem'对象没有属性'objectId'”。
我也试过rowId = row.results[0]['objectId']
,但得到错误“'SearchResultItem'对象没有属性'__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字符串,也不是一个字典。 – tianwei
请提供从API获取数据的全部响应,然后让我们知道哪里存在问题。 –