我正在尝试使用 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 主体的位置,但这有点痛苦。请把我从痛苦中拯救出来!