Обновление атомарного счетчика DynamoDB с помощью Python / Boto

Я пытаюсь обновить счетчик атомов с помощью Python Boto 2.3.0, но не могу найти документацию по этой операции.

Похоже прямого интерфейса нет, поэтому я пытался зайти на "сырые" обновления через интерфейс layer1, но не смог выполнить даже простое обновление.

Я попробовал следующие варианты, но все безуспешно.

dynoConn.update_item(INFLUENCER_DATA_TABLE, 
                     {'HashKeyElement': "9f08b4f5-d25a-4950-a948-0381c34aed1c"}, 
                     {'new': {'Value': {'N':"1"}, 'Action': "ADD"}})    

dynoConn.update_item('influencer_data', 
                     {'HashKeyElement': "9f08b4f5-d25a-4950-a948-0381c34aed1c"}, 
                     {'new': {'S' :'hello'}})                                 

dynoConn.update_item("influencer_data", 
                     {"HashKeyElement": "9f08b4f5-d25a-4950-a948-0381c34aed1c"},
                     {"AttributesToPut" : {"new": {"S" :"hello"}}})      

Все они выдают одну и ту же ошибку.:

  File "/usr/local/lib/python2.6/dist-packages/boto-2.3.0-py2.6.egg/boto/dynamodb/layer1.py", line 164, in _retry_handler
    data)
boto.exception.DynamoDBResponseError: DynamoDBResponseError: 400 Bad Request
{u'Message': u'Expected null', u'__type': u'com.amazon.coral.service#SerializationException'}

Я также изучил документацию по API здесь , но они были довольно спартанскими.

Я много искал и возился, и единственное, что мне осталось, это использовать PHP API и углубиться в код, чтобы найти, где он «форматирует» тело JSON, но это немного больно. Пожалуйста, спаси меня от этой боли!

9
задан senderle 26 April 2012 в 13:48
поделиться