查询时格式化查询结果

时间:2018-10-01 11:24:50

标签: python python-3.x amazon-web-services amazon-dynamodb boto3

我的数据结构如下,对于简单查询,它确实以这种方式返回:

{  
  '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获得所需的结果。

1 个答案:

答案 0 :(得分:-1)

在没有尝试为此设置完整的测试环境的情况下,嵌套格式似乎是您明确要求的投影。我会尝试的:

response = table.query(        
    KeyConditionExpression=Key('some_id').eq(some_id),        
    ProjectionExpression="#p1, #s",
    ExpressionAttributeNames={'#p1': 'prop1', '#s': 'some_id'}
)

由于您实际上根本不需要#p或嵌套,因此从属性名称和投影中都将其删除。