Python saving dictionarys in files. Problem with "TypeError: list indices must be integers or slices, not str"
Python saving dictionarys in files. Problem with "TypeError: list indices must be integers or slices, not str"
我正在为一个使用字典的项目做电话簿的事情。
一切都很好,直到我保存新添加的键和值的这个有问题的部分。
我想知道我哪里做错了?
Katalog={"Edd":["4858"],
"Zaa":["4202"],
}
def save(Katalog):
badChars = [",""[","]","'"]
savelist=[]
filname=input()
f=open(filname,"w")
for namn in Katalog:
savelist.append(namn)
savelist.append(":")
for x in Katalog[namn]:
savelist.append(Katalog[namn][x])
savelist.append(":")
savelist.append("\n")
saveList = ''.join(i for i in saveList if not i in badChars)
f.write(savelist)
f.close()
TypeError: 列表索引必须是整数或切片,而不是 str
Katalog: Dict[str, List[str]]
for namn in Katalog:
namn
是 Katalog
的键
for x in Katalog[namn]:
x
是包含在Katalog[namn]
中的字符串
savelist.append(Katalog[namn][x])
Katalog[namn]
是包含 x
的列表,但使用 x
作为索引将不起作用。您可以将此行更改为 savelist.append(x)
savelist.append(":")
将该行与上一行交换,这样分隔符就在键和值之间。
除了编写自己的函数,您还可以使用标准库中的 json
模块:
import json
def save(Katalog):
with open(input(), "w") as f:
josn.dump(Katalog, f)
我正在为一个使用字典的项目做电话簿的事情。 一切都很好,直到我保存新添加的键和值的这个有问题的部分。 我想知道我哪里做错了?
Katalog={"Edd":["4858"],
"Zaa":["4202"],
}
def save(Katalog):
badChars = [",""[","]","'"]
savelist=[]
filname=input()
f=open(filname,"w")
for namn in Katalog:
savelist.append(namn)
savelist.append(":")
for x in Katalog[namn]:
savelist.append(Katalog[namn][x])
savelist.append(":")
savelist.append("\n")
saveList = ''.join(i for i in saveList if not i in badChars)
f.write(savelist)
f.close()
TypeError: 列表索引必须是整数或切片,而不是 str
Katalog: Dict[str, List[str]]
for namn in Katalog:
namn
是 Katalog
for x in Katalog[namn]:
x
是包含在Katalog[namn]
savelist.append(Katalog[namn][x])
Katalog[namn]
是包含 x
的列表,但使用 x
作为索引将不起作用。您可以将此行更改为 savelist.append(x)
savelist.append(":")
将该行与上一行交换,这样分隔符就在键和值之间。
除了编写自己的函数,您还可以使用标准库中的 json
模块:
import json
def save(Katalog):
with open(input(), "w") as f:
josn.dump(Katalog, f)