我想在dynamo DB上存储字典,所以:
{"amount":"2.9","date":[]}
我知道如何使用Haskell。
来自formattedInfo = avS .~ info $ attributeValue
的 Network.AWS.DynamoDB
但是当我用python尝试它时:
formatted_data = {'amount': str(data['amount']), 'date': data['date']}
if 'Item' in item_response:
table.update_item(
Key={
's3ObjectKey': s3_key
},
UpdateExpression='SET kiData = :val1',
ExpressionAttributeValues={
':val1': formatted_data
}
)
else:
table.put_item(
Item={
's3ObjectKey': s3_key,
'kiData': formatted_data
}
)
我得到了这个{ "amount" : { "S" : "2.9" }, "date" : { "L" : [ ] }}
并没有那么糟糕,但它并不像{"amount":"2.9","data":[]}
有谁知道,我怎么能这样做?
答案 0 :(得分:0)
我已经找到了答案,我只需将其存储为字符串:
formatted_data = {'amount': str(data['amount']), 'date': data['date']}
if 'Item' in item_response:
table.update_item(
Key={
's3ObjectKey': s3_key
},
UpdateExpression='SET kiData = :val1',
ExpressionAttributeValues={
':val1': str(formatted_data)
}
)
else:
table.put_item(
Item={
's3ObjectKey': s3_key,
'kiData': str(formatted_data)
}
)
或者也是这样,对我来说更合适:
formatted_data = {'amount': str(data['amount']), 'date': data['date']}
if 'Item' in item_response:
table.update_item(
Key={
's3ObjectKey': s3_key
},
UpdateExpression='SET kiData = :val1',
ExpressionAttributeValues={
':val1': json.dumps(formatted_data)
}
)
else:
table.put_item(
Item={
's3ObjectKey': s3_key,
'kiData': json.dumps(formatted_data)
}
)