如何解析Smartsheet API 2.0 Python SDK错误结果?
How to parse Smartsheet API 2.0 Python SDK error results?
我正在尝试让 update_rows 方法正常工作
(这里的答案还没有帮助:
)
并希望捕获并解析结果
results = smartsheet.Sheets.update_rows(test_sheet_id, [row])
print(results)
给我这个:
{"requestResponse": null, "result": {"shouldRetry": false, "name":
"InvalidRowLocationError", "code": 1062, "recommendation": "Do not retry
without fixing the problem.", "message": "Invalid row location.",
"statusCode": 400}}
请注意,成功看起来像这样(剪掉了大部分):
{"resultCode": 0, "message": "SUCCESS", "version": 21, "result":
[{"discussions": [], "createdAt": null, "above": null, "modifiedAt":
null, "columns": [], "toTop": null, "sheetId": null, "siblingId":
4800885606901636, "permalink": null, "id": 6067523002099588,
"accessLevel": null, "conditionalFormat": null, "attachments": [],
"cells": [{"columnType": null, "displayValue": null, "linksOutToCells":
null, "strict": true, "hyperlink": null, "formula": null, "format": null,
"conditionalFormat": null, "columnId": 7600931584927620, "linkInFromCell":
null, "value": null}, {"columnType": null, "displayValue": null, "
... snip ...
这看起来像字典,但无法识别键、项目和值。
接下来它看起来像 json - 但我没有尝试过(我对 json 还不太了解)也没有奏效。
如果我能从成功中获得 resultCode,那将是一个开始。
来自 result 的值更好,但这似乎是失败的字典和成功的列表。
我很困惑。任何帮助表示赞赏。
我正在使用 Python 3.5,Smartsheet API 2.0 Python SDK
克雷格
我想通了。
results = smartsheet.Sheets.update_rows(test_sheet_id, [row])
returns 来自 models\error_result.py SDK 代码的 result 对象。
该对象有两个感兴趣的方法,每个 属性 都可以这样引用:
print(results.result.code)
returns代码(例如1062)
这两个方法是to_dict和to_json,可以像这样访问和打印:
print(results.result.to_dict())
给出:
{'shouldRetry': False, 'name': 'InvalidRowLocationError', 'code': 1062,
'recommendation': 'Do not retry without fixing the problem.', 'message':
'Invalid row location.', 'statusCode': 400}
my_dict = results.result.to_dict()
for key, value in my_dict.items():
print(key, value)
给出:
shouldRetry False
name InvalidRowLocationError
code 1062
recommendation Do not retry without fixing the problem.
message Invalid row location.
statusCode 400
和to_json代码
print(results.result.to_json())
给予
{
"shouldRetry": false,
"name": "InvalidRowLocationError",
"code": 1062,
"recommendation": "Do not retry without fixing the problem.",
"message": "Invalid row location.",
"statusCode": 400
}
和:
my_json = results.result.to_json()
my_dict = json.loads(my_json)
for key, value in my_dict.items():
print(key, value)
给出:
shouldRetry False
name InvalidRowLocationError
code 1062
recommendation Do not retry without fixing the problem.
message Invalid row location.
statusCode 400
我正在尝试让 update_rows 方法正常工作
(这里的答案还没有帮助:
)
并希望捕获并解析结果
results = smartsheet.Sheets.update_rows(test_sheet_id, [row])
print(results)
给我这个:
{"requestResponse": null, "result": {"shouldRetry": false, "name":
"InvalidRowLocationError", "code": 1062, "recommendation": "Do not retry
without fixing the problem.", "message": "Invalid row location.",
"statusCode": 400}}
请注意,成功看起来像这样(剪掉了大部分):
{"resultCode": 0, "message": "SUCCESS", "version": 21, "result":
[{"discussions": [], "createdAt": null, "above": null, "modifiedAt":
null, "columns": [], "toTop": null, "sheetId": null, "siblingId":
4800885606901636, "permalink": null, "id": 6067523002099588,
"accessLevel": null, "conditionalFormat": null, "attachments": [],
"cells": [{"columnType": null, "displayValue": null, "linksOutToCells":
null, "strict": true, "hyperlink": null, "formula": null, "format": null,
"conditionalFormat": null, "columnId": 7600931584927620, "linkInFromCell":
null, "value": null}, {"columnType": null, "displayValue": null, "
... snip ...
这看起来像字典,但无法识别键、项目和值。 接下来它看起来像 json - 但我没有尝试过(我对 json 还不太了解)也没有奏效。
如果我能从成功中获得 resultCode,那将是一个开始。 来自 result 的值更好,但这似乎是失败的字典和成功的列表。
我很困惑。任何帮助表示赞赏。 我正在使用 Python 3.5,Smartsheet API 2.0 Python SDK
克雷格
我想通了。
results = smartsheet.Sheets.update_rows(test_sheet_id, [row])
returns 来自 models\error_result.py SDK 代码的 result 对象。
该对象有两个感兴趣的方法,每个 属性 都可以这样引用:
print(results.result.code)
returns代码(例如1062)
这两个方法是to_dict和to_json,可以像这样访问和打印:
print(results.result.to_dict())
给出:
{'shouldRetry': False, 'name': 'InvalidRowLocationError', 'code': 1062,
'recommendation': 'Do not retry without fixing the problem.', 'message':
'Invalid row location.', 'statusCode': 400}
my_dict = results.result.to_dict()
for key, value in my_dict.items():
print(key, value)
给出:
shouldRetry False
name InvalidRowLocationError
code 1062
recommendation Do not retry without fixing the problem.
message Invalid row location.
statusCode 400
和to_json代码
print(results.result.to_json())
给予
{
"shouldRetry": false,
"name": "InvalidRowLocationError",
"code": 1062,
"recommendation": "Do not retry without fixing the problem.",
"message": "Invalid row location.",
"statusCode": 400
}
和:
my_json = results.result.to_json()
my_dict = json.loads(my_json)
for key, value in my_dict.items():
print(key, value)
给出:
shouldRetry False
name InvalidRowLocationError
code 1062
recommendation Do not retry without fixing the problem.
message Invalid row location.
statusCode 400