Python 我试图一次将多个词典保存到一个列表中,同时保留它们的值,但它不是';行不通

Python 我试图一次将多个词典保存到一个列表中,同时保留它们的值,但它不是';行不通,python,dictionary,save,Python,Dictionary,Save,当它说f.write(itemsinexintence[ii][0],'')时,它给了我一个错误 关键错误:0 这是为什么?这意味着什么?有什么办法可以解决这个问题吗?正如@ggorlen所说,使用名称作为键 itemsinexience=[{'name':'Tester','stats':1,'rank':1,'amount':1}, {'name':'Mk II Death','stats':10',rank':5',amount':3}] def save_list2(): 将open('

当它说f.write(itemsinexintence[ii][0],'')时,它给了我一个错误

关键错误:0


这是为什么?这意味着什么?有什么办法可以解决这个问题吗?

正如@ggorlen所说,使用名称作为键

itemsinexience=[{'name':'Tester','stats':1,'rank':1,'amount':1},
{'name':'Mk II Death','stats':10',rank':5',amount':3}]
def save_list2():
将open('all_items.txt','w')作为f:
对于ItemsExistence中的项目:
f、 写入({name}{stats}{rank}{amount}\n'.格式(**项))
这个例子需要Python3

编辑:我已将打印(…,file=f)更改为写入(…),现在它可以在py2和py3中工作

编辑2:一些解释

语句关闭文件

列表
list
[]
使用正整数索引(
0
1
等)
字典
dict
{}
使用键(在您的示例中
'name'
'stats'
等)。看

for
语句按列表项或dict键进行迭代。您不需要
ii
item
是列表项的内容,即dict

[1,4,'ala'中的项目的
:
打印(项目)
#印刷品:
# 1
# 4
#“阿拉”
对于{'anwer':42,'sto':100,1:'first'}中的键:
打印(键)
#印刷品:
#“答案”
#“sto”
# 1
您可以通过
my_dict[key]
访问dict值,或通过值
对my_dict.values中的值进行迭代,或通过键和值:
对键,对my_dict.items()中的值进行迭代

我使用了关键字参数
**item
。在函数调用中
func(**{'a':1,'b':2})
表示
func(a=1,b=2)


字符串格式
'.format()
(或自Python 3.6以来的格式字符串
f'
)允许将数据直接放入字符串。

正如@ggorlen所说,使用名称作为键

itemsinexience=[{'name':'Tester','stats':1,'rank':1,'amount':1},
{'name':'Mk II Death','stats':10',rank':5',amount':3}]
def save_list2():
将open('all_items.txt','w')作为f:
对于ItemsExistence中的项目:
f、 写入({name}{stats}{rank}{amount}\n'.格式(**项))
这个例子需要Python3

编辑:我已将打印(…,file=f)
更改为写入(…)
,现在它可以在py2和py3中工作

编辑2:一些解释

语句关闭文件

列表
list
[]
使用正整数索引(
0
1
等)
字典
dict
{}
使用键(在您的示例中
'name'
'stats'
等)。看

for
语句按列表项或dict键进行迭代。您不需要
ii
item
是列表项的内容,即dict

[1,4,'ala'中的项目的
:
打印(项目)
#印刷品:
# 1
# 4
#“阿拉”
对于{'anwer':42,'sto':100,1:'first'}中的键:
打印(键)
#印刷品:
#“答案”
#“sto”
# 1
您可以通过
my_dict[key]
访问dict值,或通过值
对my_dict.values中的值进行迭代,或通过键和值:
对键,对my_dict.items()中的值进行迭代

我使用了关键字参数
**item
。在函数调用中
func(**{'a':1,'b':2})
表示
func(a=1,b=2)


字符串格式
''.format()
(或自Python 3.6以来的格式字符串
f'
)允许将数据直接放入字符串。

使用
item[“name”]
item[“stats”]
等。dict中没有0、1、2等的键。在代码中,第一行已经产生语法错误。最好将代码复制并粘贴到问题中。使用
item[“name”]
item[“stats”]
等。dict中没有0、1、2等的键。在代码中,第一行已经产生语法错误。最好将代码复制粘贴到问题中。
itemsInExistence = [{'name': 'Tester', 'stats': 1, 'rank': 1, 'amount': 1}, {'name': 'Mk II Death', 'stats': 10, 'rank': 5, 'amount': 3}]
def save_list2():
  f = open('all_items.txt', 'w')
  ii = 0
  for item in itemsInExistence:
    print(f.write(itemsInExistence[ii][0], ''))
    f.write(itemsInExistence[ii][1] + ' ')
    f.write(itemsInExistence[ii][2] + ' ') 
    f.write(itemsInExistence[ii][3] + '\n')
    ii += 1