首页 > 解决方案 > 如何将简单的 JSON 转换为 DynamoDB JSON?

问题描述

我有一个简单的 JSON,想将其转换为 DynamoDB JSON。有什么简单的方法可以做到这一点吗?

标签: jsonpython-3.xamazon-web-servicesamazon-dynamodb

解决方案


如果你JsonString愿意Dynamodb Map,你可以使用boto3. 这是示例。

import boto3
import json

json_string = '{"key1": 1, "key2": "value"}'
json_obj = json.loads(json_string)

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('test-table')

table.put_item(Item={'pk': 'pk-value', 'map': json_obj})

如果您只想更新 whileMap属性,您可以使用与 .json 相同的 JSON 格式put_item

json_string = '{"key1": 2, "key2": "value2"}'
json_obj = json.loads(json_string2)
rsp = table.update_item(
    Key={'pk': 'pk-value'},
    AttributeUpdates={'map': {'Value': json_obj2, 'Action': 'PUT'}}
)

但是,如果您只想更新特定的嵌套属性,则需要使用UpdateExpression. 例如,下面是仅key1将属性更新为“value3”的代码。

nested_json_string = '{"nested": "key3"}'
nested_json_obj = json.loads(nested_json_string)

rsp = table.update_item(
    Key={'pk': 'pk-value'},
    UpdateExpression='SET #map.#key1 = :val3',
    ExpressionAttributeNames={'#map':  'map', '#key1': 'key1'},
    ExpressionAttributeValues={':val3': nested_json_obj}
)

推荐阅读