我想在发电机数据库上储存一本字典,以便:

{"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)
        }
    )

08-07 16:16