我想在发电机数据库上储存一本字典,以便:
{"amount":"2.9","date":[]}
我知道怎么对付哈斯克尔。
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":[]}
有人知道,我怎么能那样做?
最佳答案
我已经找到答案了,我只需要把它存储为字符串:
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)
}
)