python – DynamoDB – 如何查询嵌套属性boto3

python – DynamoDB – 如何查询嵌套属性boto3,第1张

概述我正在关注DynamoDB python教程.此步骤显示如何基于特定密钥查询表: http://docs.aws.amazon.com/amazondynamodb/latest/gettingstartedguide/GettingStarted.Python.04.html. 以下是此查询的代码: from __future__ import print_function # Python 2 我正在关注DynamoDB python教程.此步骤显示如何基于特定密钥查询表: http://docs.aws.amazon.com/amazondynamodb/latest/gettingstartedguide/GettingStarted.Python.04.html.

以下是此查询的代码:

from __future__ import print_function # Python 2/3 compatibilityimport boto3import Jsonimport decimalfrom boto3.dynamodb.conditions import Key,Attr# Helper class to convert a DynamoDB item to JsON.class DecimalEncoder(Json.JsONEncoder):    def default(self,o):        if isinstance(o,decimal.Decimal):            return str(o)        return super(DecimalEncoder,self).default(o)dynamodb = boto3.resource('dynamodb',region_name='us-west-2',endpoint_url="http://localhost:8000")table = dynamodb.table('MovIEs')print("MovIEs from 1992 - Titles A-L,with genres and lead actor")response = table.query(    ProjectionExpression="#yr,Title,info.genres,info.actors[0]",ExpressionAttributenames={ "#yr": "year" },# Expression Attribute names for Projection Expression only.    KeyConditionExpression=Key('year').eq(1992) & Key('Title').between('A','L'))for i in response[u'Items']:    print(Json.dumps(i,cls=DecimalEncoder))

示例响应项是

{    "Title": "Juice","year": "1992","info": {        "actors": [            "Omar Epps"        ],"genres": [            "Crime","Drama","Thriller"        ]    }}

该表有两个关键属性’Title’和’year’以及嵌套属性’info’.我想要做的是查询数据库并按流派过滤电影,例如获取所有戏剧电影.我不知道如何做到这一点,因为类型键嵌套在内部信息.

我试图从1992年开始拍摄所有的戏剧电影,但它却一片空白.

response = table.query(    KeyConditionExpression=Key('year').eq(1992),FilterExpression=Attr('info.genres').eq('Drama'))

如何使用嵌套的info属性正确过滤此查询?

解决方法 您可以使用contains来过滤List数据类型中的数据.

genres -attribute存储为List insIDe info属性,这是一种Map数据类型

FilterExpression=Attr('info.genres').contains('Drama')
总结

以上是内存溢出为你收集整理的python – DynamoDB – 如何查询嵌套属性boto3全部内容,希望文章能够帮你解决python – DynamoDB – 如何查询嵌套属性boto3所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1193882.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存