gpt4 book ai didi

python-3.x - 尝试使用 python 客户端更新 DynamoDb 中的列时出错

转载 作者:行者123 更新时间:2023-12-04 12:43:43 25 4
gpt4 key购买 nike

我有一个 dynamoDB 表,键名为 id,字符串字段名为 state。我只想使用 update_item DynamoDb Python 客户端更新状态值。

DDB_CLIENT.update_item(
Key={
'id' : {'S': id}
},
TableName='TrackingState',
UpdateExpression="set state = :r",
ExpressionAttributeValues={
':r': '"state": {"S": "IN_PROGRESS"}'
}
)

我得到一个错误:Invalid type for parameter ExpressionAttributeValues type: <class 'str'>, valid types: <class 'dict'>

如果我将 expressionAttributeValues 尝试为:

':r' : {"state": {"S": "IN_PROGRESS"}} I get the error: Unknown parameter in ExpressionAttributeValues.:r: "state", must be one of: S, N, B, SS, NS, BS, M, L, NULL, BOOL

如果我尝试

':r' : {"S": "QUEUED"}
Invalid UpdateExpression: Attribute name is a reserved keyword; reserved keyword: state

什么是更新 DynamoDb 表中条目的正确方法

最佳答案

If I try

':r' : {"S": "QUEUED"} Invalid UpdateExpression: Attribute name is a reserved keyword; reserved keyword: state

没错,state 关键字不能用在表达式中,所以 ExpressionAttributeNames 字典允许使用它。

DDB_CLIENT.update_item(
Key={
'id' : {'S': id}
},
TableName='TrackingState',
UpdateExpression="set #s = :r",
ExpressionAttributeNames={
'#s': "state"
},
ExpressionAttributeValues={
':r': {"S": "QUEUED"}
}
)

关于python-3.x - 尝试使用 python 客户端更新 DynamoDb 中的列时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54588346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com