【问题标题】:AWS DynamoDB FilterExpression converting attribute to String and compare with integerAWS DynamoDB FilterExpression 将属性转换为字符串并与整数进行比较
【发布时间】:2021-08-30 22:19:32
【问题描述】:

AWS DynamoDB:如何将属性值转换为 int 并在 python 脚本中进行比较

例子

fe = Attr('Colum1').eq('Value') & int(Attr('StringField')) > 3)
response = userDevices.scan(Select='ALL_ATTRIBUTES',FilterExpression=fe,
                                 TotalSegments=total_segment, Segment=segment)

运行时出现错误 TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是“Attr” 有人遇到过这个问题吗?

【问题讨论】:

  • 怀疑这种方法是否可行。尝试Attr('StringField').gt(3),以防 DynamoDB 将字符串值强制转换为数字(不确定是否会,但值得尝试)。
  • @jarmod 是的,看起来它可以工作 - 谢谢

标签: python dynamodb-queries amazon-dynamodb


【解决方案1】:

这很好用。 Attr 是条件的一部分,不是结果

fe = Attr('Colum1').eq('Value') & Attr('StringField').gt(3))
response = userDevices.scan(Select='ALL_ATTRIBUTES',FilterExpression=fe,
                             TotalSegments=total_segment, Segment=segment)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 2015-05-05
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多