我有一個 JSON 檔案,其中包含以下格式的標記集(鍵、值):
{"Key1":"ValueA", "Key2":"ValueB"}
boto3 S3put_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 到標簽集的建議都非常受歡迎。
uj5u.com熱心網友回復:
您可以使用以下方法獲取迭代中的鍵和值.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()])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/473199.html
