我的数据结构如下,对于简单查询,它确实以这种方式返回:
{
'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获得所需的结果。
答案 0 :(得分:-1)
在没有尝试为此设置完整的测试环境的情况下,嵌套格式似乎是您明确要求的投影。我会尝试的:
response = table.query(
KeyConditionExpression=Key('some_id').eq(some_id),
ProjectionExpression="#p1, #s",
ExpressionAttributeNames={'#p1': 'prop1', '#s': 'some_id'}
)
由于您实际上根本不需要#p
或嵌套,因此从属性名称和投影中都将其删除。