python - 将字符串列表转换为 python 列表并获取值
问题描述
我对 AWS 很陌生。我有两个 lambda,第一个查询 RDS 并收到类似
[('asdzxc', '12345-0', 123), ('asdzxc', '67890-0', 456)]的结果,然后第二个调用第一个并接受查询。问题是查询是作为字符串接收的:
"[('asdzxc', '12345-0', 123), ('asdzxc', '67890-0', 456)]"。我需要迭代并获取值以在另一个输出中使用它们。但是当我迭代时,它每行显示一个字符。我一直在阅读一些文档并尝试使用json.loads()
, list()
, tuple()
, ast.literal_eval
. 但我还是一样。
这是第一个 lambda 的片段:
query = select_from_bcuc(rut_crypto)
print(query)
str_data = json.dumps(str(query))
return {
'statusCode': 200,
'request_id': request_id,
'body': str_data,
'msg': 'Hello from extractData!!!'
}
> output: [('asdzxc', '12345-0', 123), ('asdzxc', '67890-0', 456)]
第二个 lambda:
obj = extractData(rut)
if obj:
print('Getting data.')
print(obj['body'])
p = json.loads(obj['body'])
print(p)
> output: "[('asdzxc', '12345-0', 123), ('asdzxc', '67890-0', 456)]"
解决方案
您可以使用literal_eval:
import ast
s="[('asdzxc', '12345-0', 123), ('asdzxc', '67890-0', 456)]"
a_list = ast.literal_eval(s)
print(type(a_list), a_list)
给出:
<class 'list'> [('asdzxc', '12345-0', 123), ('asdzxc', '67890-0', 456)]
推荐阅读
- c++ - ncurses中的“红心❤️”Unicode字符
- go - net/http 和 ant 每次运行都会给我不同的结果
- powershell - 在 Powershell 中使用 Invoke-SSHCommand 传递变量
- python - Pandas - 附加包含不完整列的 CSV 文件
- templates - jinja 模板删除空格
- java - 两个同时请求导致 401(cookie JSESSIONID?)
- java - 从 Maven 配置中设置 VM 选项
- python - 如何计算另一组的平均值?
- json - 从“获取”到“显示”JSON API 数据的转变 Swift Node.js
- .net - 使用 Azure App Config -> 希望允许本地配置覆盖开发人员