37

I'm currently using hbase with my Python apps and wanted to try out Amazon DynamoDB. Is there a way to use Python to read, write and query data?

John Sheehan
  • 77,456
  • 30
  • 160
  • 194
Lostsoul
  • 25,013
  • 48
  • 144
  • 239
  • 3
    Is there any abstraction layer that supports DynamoDB as well as other NoSQL databases? – DanJ Jan 23 '12 at 08:21

5 Answers5

27

Another alternative is PynamoDB. PynamoDB provides an ORM like interface to DynamoDB and supports both Python 2 and Python 3. The entire DynamoDB API is supported by PynamoDB - including global and local secondary indexes, batch operations, binary attributes, queries, scans, etc.

Disclaimer: I wrote PynamoDB.

Jharrod LaFon
  • 545
  • 4
  • 6
  • As of the time of this comment DAX isn't supported by PynamoDB. Hopefully the pull requests that adds support for it will be added at some point, but right now I'm having to use boto3 and make all the queries by hand with amazon-dax-client. – Agustín Lado Dec 17 '18 at 22:05
  • 1
    Wow - PynamoDB is awesome! – Jesper - jtk.eth Jun 06 '20 at 03:40
14

Disclaimer: I'm the current maintainer

You can use Dynamodb-mapper Python library. It's a simple/tiny abstraction layer that allows you to map plain Python object to DynamoDB. It also features a transaction engine.

For advanced tasks such as table management it is still better to directly use Boto (which we rely on, anyway).

yadutaf
  • 6,840
  • 1
  • 37
  • 48
3

This question has been years so I believe your problem was already resolved. Just want to mention that you could use boto3 to access DynamoDB as well nowadays.

Old Panda
  • 1,466
  • 2
  • 15
  • 30
3

I'm the author of Lucid-Dynamodb, a minimalist wrapper to AWS DynamoDB. It covers all the Dynamodb operations.

Reference: https://github.com/dineshsonachalam/Lucid-Dynamodb

Dinesh Sonachalam
  • 1,223
  • 19
  • 33