不能动态创建字典



我想动态创建一个字典。我有一个包列表,并希望创建一个数据动态如下

package_list = ['package1','package2','package3']
data={
"packageMap" : {
"package1" : [],
"package2" : [],
"package3" : []
}
}

下面是我正在尝试的代码,但错误字典更新序列元素#0长度为1;:

data = {
"packageMap" : {}
} 
dump = json.dumps(data)
json_data  = json.loads(dump)
for package in package_list:
json_data["packageMap"].update(f"{package} : []")

您的json_data是一个python字典,dict类暴露的update方法需要dict或任何其他具有键值对的可迭代对象,而不是给它一个字符串。用键值对替换它就可以了。

data = {
"packageMap" : {}
} 
dump = json.dumps(data)
json_data  = json.loads(dump)
for package in package_list:
json_data["packageMap"].update({package: []})

参考:https://docs.python.org/3/library/stdtypes.html dict.update

作为另一种方法,您可以将键添加到另一个字典中,然后将其添加到json中:

package_list = ['package1','package2','package3']
packageMap = {}
for package in package_list:
packageMap[package]=[]
data["packageMap"] = packageMap
print(data)

dict.update不接受str作为参数。您应该检查它在内置类型中的用法:dict

最新更新