python - 查询时格式化查询结果
问题描述
我的数据结构如下,对于简单的查询,它确实以这种方式返回:
{
'props':{
'prop1':'value1',
'prop2':'value2',
'prop3':'value3',
},
'some_id':'123',
'timestamp':'1970-01-02 23:25:37'
}
用于查询的代码:
response = table.query(
KeyConditionExpression=Key('some_id').eq(some_id),
ProjectionExpression="#p.#p1, #s",
ExpressionAttributeNames={'#p': 'props', '#p1': 'prop1', '#s': 'some_id'}
)
当前代码的结果:
{
'some_id': '123',
'props': {
{
'prop1':'value1'
}
}
}
但我想要的结果是扁平的:
{
'some_id': '123',
'prop1': 'value1'
}
所以问题是 - 我如何通过查询获得所需的结果,而不是在获得结果后使用 python。
解决方案
在不尝试为此设置完整的测试环境的情况下,看起来嵌套格式是您明确要求的投影。我会试试这个:
response = table.query(
KeyConditionExpression=Key('some_id').eq(some_id),
ProjectionExpression="#p1, #s",
ExpressionAttributeNames={'#p1': 'prop1', '#s': 'some_id'}
)
由于您实际上根本不需要#p
嵌套,因此我将其从属性名称和投影中都删除了。
推荐阅读
- java - 继承是否与依赖倒置原则相矛盾
- spring-batch - 作业实例已存在且已完成,参数 ={}。如果要再次运行此作业,请更改参数
- java - 没有为集成测试运行 testcontainers 的 Localstack 模块
- python - 在 JupyterLab 1.1.4 中看不到 Markdown
- python-3.x - 添加两个不同的时间(当我打印这个 python 代码时没有显示)
- android - Android 如何重构嵌套的 doAsync
- javascript - 建立地方流动制度的问题
- python - 熊猫根据条件选择行
- powershell - 如何使用 power shell 解析 JSON 响应?
- wso2 - WSO2 EI,Integration Studio,碳应用程序中的自定义中介