我是学习了一个月的初学者
正在努力学习资料写入字典
这是我的代码:
def main(file):
with open(file, "r", encoding="utf-8") as f:
lines = f.readlines()
for line in lines:
dict1 = {}
line = line.strip()
if "AccountName" in line:
valueo = line.split('\"')[3]
if "7656" in line:
keyo = line.split('\"')[1]
dict1[keyo] = valueo
main("loginusers.vdf")
我搞不懂怎样引用valueo变数
輸出:
UnboundLocalError: local variable 'valueo' referenced before assignment
我希望可以输出为
{"76561234567896" : "handsomeboy", "76561234554984" : "handsomegirl"}
因为你是分两个if判断,
如果 if "AccountName" in line:判断不成功,只有 if "7656" in line: 判断成功,
在执行 dict1[keyo] = valueo 时valueo还没有被赋值。
需要两个条件一起判断 if "AccountName" in line and "7656" in line:
另外 dict1 = {} 要放在循环外面
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
def main(file):
dict1 = {} #要放在循环外面
with open(file, "r", encoding="utf-8") as f:
lines = f.readlines()
for line in lines:
line = line.strip()
if "AccountName" in line and "7656" in line:
valueo = line.split('\"')[3]
keyo = line.split('\"')[1]
dict1[keyo] = valueo
print(dict1)
main("loginusers.vdf")
def main(file):
with open(file, "r", encoding="utf-8") as f:
lines = f.readlines()
dict1 = {}
for line in lines:
line = line.strip()
if "AccountName" in line:
valueo = line.split('\"')[3]
if "7656" in line:
keyo = line.split('\"')[1]
dict1[keyo] = valueo
main("loginusers.vdf")