【问题标题】:using boto to scan dynamodb table使用 boto 扫描 dynamodb 表
【发布时间】:2015-10-07 20:37:48
【问题描述】:

各位, 我有一个“管理员”表,其中“用户名”作为其 HashKey。 该表如下所示:

admins = Table('admins')
admins.put_item(data={
  'UserName':'jon',
  'password':'pass1',
  })
admins.put_item(data={
  'UserName':'tom',
  'password':'pass2',
  })

因此,为了将用户拉出来,我尝试执行以下操作,但失败了:

admins = Table('admins')
all_admins = admins.scan()
for x in all_admins:
  print x['UserName']

为什么我得到一个空集?

谢谢!

【问题讨论】:

    标签: python boto amazon-dynamodb


    【解决方案1】:

    你所做的看起来是正确的。

    您是否确认数据实际已写入?(查看 AWS 控制台) 你想写完后直接阅读吗?默认读取是最终一致的,因此您可能无法在写入后直接找到项目

    【讨论】:

      【解决方案2】:

      使用Item=代替data=插入项目,也可以使用batch

      admins = Table('admins')
      admins.put_item(Item={
                     'UserName':'jon',
                     'password':'pass1'})
      admins.put_item(Item={
                     'UserName':'tom',
                     'password':'pass2'})
      

      并拉动您应该使用的用户

      admins = Table('admins')
      all_admins = admins.scan(
                   ConsistentRead=True)
      items = all_admins['Items']
      for x in items:
        print x['UserName']
      

      这应该可以完成工作

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-12
        • 2021-05-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多