如果这是一个重复或简单的问题,请道歉。
我最近一直在学习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以找到答案/线索。
---编辑结束
感谢您的帮助!
答案 0 :(得分:1)
请尝试:
rowId = row['results'][0]['objectId']
答案 1 :(得分:0)
您的图书馆代码清楚地说明SearchResultItem
有a property .object_id
。
print(reportingRow.results[0].object_id) # this works just fine
您的问题与字典/ JSON无关,因为不使用字典。您正在使用围绕这些词典的自定义对象。