Felix56020 2021-10-08 02:50 采纳率: 100%
浏览 43
已结题

Python 怎样把读出来的资料写入字典

我是学习了一个月的初学者
正在努力学习资料写入字典
这是我的代码:

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"}
  • 写回答

2条回答 默认 最新

  • 关注

    因为你是分两个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")
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月16日
  • 已采纳回答 10月8日
  • 创建了问题 10月8日