python - Python 如何解析 Amazon RDS 数据服务的输出
问题描述
我正在努力使用 Amazon RDS 数据服务https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_ExecuteStatement.html解析 ExecuteStatement 操作的输出
文档很差,我找不到任何有意义的例子。
我正在使用 Aurora MySql 数据库
输出是这样返回的。此示例是 SELECT 语句返回的 2 行数据,我已将实际数据替换为单词“data”
{'ResponseMetadata': {'RequestId': '955a6aee-5bad-4f87-a455-b83a10a8a31b', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '955a6aee-5bad-4f87-a455-b83a10a8a31b', 'content-type': 'application/json', 'content-length': '809', 'date': 'Tue, 02 Jun 2020 05:39:22 GMT'}, 'RetryAttempts': 0}, 'numberOfRecordsUpdated': 0, 'records': [[{'stringValue': 'data'}, {'longValue': data}, {'stringValue': 'data'}, {'stringValue': 'data'}, {'stringValue': ''}, {'stringValue': 'data'}, {'stringValue': 'data'}, {'stringValue': 'data'}, {'stringValue': 'data'}, {'stringValue': 'data'}, {'stringValue': 'data'}, {'stringValue': 'data'}, {'stringValue': 'data'}], [{'stringValue': 'data'}, {'longValue': data}, {'stringValue': 'data'}, {'stringValue': 'data'}, {'stringValue': ''}, {'stringValue': 'data'}, {'stringValue': 'data'}, {'stringValue': 'data'}, {'stringValue': 'data'}, {'stringValue': 'data'}, {'stringValue': 'data'}, {'stringValue': 'data'}, {'stringValue': 'data'}]]}
我实际上只需要提取这些数据字段,因此我可以将它们用于另一个表中的 INSERT 语句。
根据文档,原始响应是字典数据类型,所以我在这里得到 3 个键“ResponseMetadata”、“numberOfRecordsUpdated”和“records”。根据文档,“记录”是类型:字段对象数组的数组,这就是我坚持的地方。如何从字典中的数组数组中提取字段对象?
解决方案
有很多方法,但是python中最基本的嵌套for循环就足够了:
data_values = []
for record in result['records']:
print()
row_data = []
for data_dict in record:
#print(data_dict)
for data_type, data_value in data_dict.items():
print(data_type, data_value)
row_data.append(data_value)
data_values.append(row_data)
print(data_values)
该代码可以为修改以适应您的需要奠定良好的基础。它产生以下内容:
stringValue data
longValue data
stringValue data
stringValue data
stringValue
stringValue data
stringValue data
stringValue data
stringValue data
stringValue data
stringValue data
stringValue data
stringValue data
stringValue data
longValue data
stringValue data
stringValue data
stringValue
stringValue data
stringValue data
stringValue data
stringValue data
stringValue data
stringValue data
stringValue data
stringValue data
并且data_values
:
[['data', 'data', 'data', 'data', '', 'data', 'data', 'data', 'data', 'data', 'data', 'data', 'data'], ['data', 'data', 'data', 'data', '', 'data', 'data', 'data', 'data', 'data', 'data', 'data', 'data']]
推荐阅读
- html - 如何在显示和隐藏时添加带有输入复选框的转换
- android - 使用捕获和模拟对类进行单元测试
- javascript - TypeOrm QueryBuilder 一个表的多个关系
- google-forms - 谷歌表单仍然需要登录
- kivy - 由于不同的 ModuleNotFoundError 原因,Buildozer 不断崩溃
- javascript - React App,努力打造独立的handleToggle
- r - 使用 R 解析目录中的本地 XML 文件
- drools - InvalidPathException - 降级到 8.4.0 或解决方法
- python - 多重继承问题,非合作类?
- c++ - `auto`-array 是 C++20 中的有效函数参数吗?