使用 Python SDK 将 Amazon PA API 响应保存到 JSON 文件
Saving Amazon PA API response to JSON file using Python SDK
我正在 Python 中调用亚马逊产品广告 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() argument must be str, not SearchItemsResponse
我不想将它转换为字符串,因为我想保留文件的准确响应。有什么方法可以将响应对象原封不动地打印到文件中吗?
SearchItemsResponse
有一个 to_dict
方法递归地将其转换为嵌套的 dictionary/list 数据结构。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参考:文件 paapi5-python-sdk-example/paapi5_python_sdk/models/search_items_response.py
中的第 112 至 137 行来自从您链接的页面下载的 Python SDK zip file。
我正在 Python 中调用亚马逊产品广告 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() argument must be str, not SearchItemsResponse
我不想将它转换为字符串,因为我想保留文件的准确响应。有什么方法可以将响应对象原封不动地打印到文件中吗?
SearchItemsResponse
有一个 to_dict
方法递归地将其转换为嵌套的 dictionary/list 数据结构。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参考:文件 paapi5-python-sdk-example/paapi5_python_sdk/models/search_items_response.py
中的第 112 至 137 行来自从您链接的页面下载的 Python SDK zip file。