[英]how can I change json "dict" into a consumable format for aws boto3 tagset list of dicts
我有一个 JSON 文件,其中包含以下格式的标记集(键、值):
{"Key1":"ValueA", "Key2":"ValueB"}
boto3 S3 put_bucket_tagging
操作需要获取如下格式的tagset:
'TagSet': [
{
'Key': 'Key1',
'Value': 'ValueA',
},
{
'Key': 'Key2',
'Value': 'ValueB',
}
]
它看起来像一个字典列表,但我不知道如何到达那里。 我努力了:
def reformat_json_tagset():
with open('tagset.json') as json_file:
data = json.load(json_file)
info = {}
content = []
for key in data:
info = {
"Key": data[key],
"Value": data[key],
}
content.append(info)
mynewtagset = print("'Tagset': "+ str(content))
return(mynewtagset)
reformat_json_tagset()
这导致:
'Tagset': [{'Key': 'Key1', 'Value': 'Key1'}, {'Key': 'Key2', 'Value': 'Key2'}
'Value': 'Key1'
和'Value': 'Key2'
显然是错误的,因为它们必须是值。
我知道我的代码中的"value": data[key]
部分不正确,但我不知道如何从标签集中的值中的 json 获取“值”。 另外我不知道我使用 for 循环的方法是否正确,这对我来说有点奇怪。 我不拘泥于 for 循环方法,任何其他从 json 到标签集的建议都非常受欢迎。
您可以使用.items()
迭代中的键和值:
content=[]
for k,v in data.items():
content.append({"Key":k, "Value":v})
mynewtagset = "'Tagset': "+ str(content)
如果你喜欢打代码高尔夫,你也可以使用列表推导来做到这一点:
mynewtagset="'Tagset': "+str([{"Key":k, "Value":v} for k, v in data.items()])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.