使用Python SDK将Amazon PA API响应保存到JSON文件

问题描述

我正在用Python调用Amazon Product Advertising API,以获取某些产品的数据:https://webservices.amazon.com/paapi5/documentation/quick-start/using-sdk.html

我通过以下方式导入API:

from paapi5_python_sdk.api.default_api import DefaultApi
from paapi5_python_sdk.models.search_items_request import SearchItemsRequest
from paapi5_python_sdk.models.search_items_resource import SearchItemsResource

我使用此调用API:

response = default_api.search_items(search_items_request)

然后我尝试使用基本代码将响应对象写入文件:

with open('paapi_response.json','w') as outfile:
   outfile.write(response)

但是出现以下错误:

TypeError:write()参数必须为str,而不是SearchItemsResponse

我不想将其转换为字符串,因为我想保留文件的确切响应。有什么方法可以将响应对象原样打印到文件中?

解决方法

SearchItemsResponse有一个to_dict方法,该方法将其递归转换为嵌套的字典/列表数据结构。 1

您可以将其写入JSON,如How do I write JSON data to a file?所示:

import json

# ...

with open('paapi_response.json','w') as outfile:
    json.dump(response.to_dict(),outfile)

1 参考:从您链接的页面下载的Python SDK zip file中的文件paapi5-python-sdk-example/paapi5_python_sdk/models/search_items_response.py中的第112到137行。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...