【发布时间】:2012-05-07 06:02:06
【问题描述】:
我正在尝试使用 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 文档 here,但它们非常简陋。
我已经做了很多搜索和摆弄,我唯一剩下的就是使用 PHP API 并深入研究代码以找到它“格式化”JSON 主体的位置,但这有点痛苦.请救我脱离痛苦!
【问题讨论】:
标签: python counter atomic boto amazon-dynamodb