ValueError:字典更新序列元素#0的长度为1;从文件中读取时需要2

时间:2015-06-15 11:07:41

标签: python file dictionary

我正在尝试从文件中读取字典,然后将字符串转换为字典。我有这个,

with open("../resources/enemyStats.txt", "r") as stats:
        for line in stats:
            if self.kind in line:
                line  = line.replace(self.kind + " ", "")
                line = dict(line)
                return line

并且txt文件中的行是,

slime {'hp':5,'speed':1}

我希望能够返回一个字典,以便我可以轻松访问敌人角色的hp和其他值。

1 个答案:

答案 0 :(得分:2)

BuddhistCalendar不解析Python字典文字语法;它不会占用字符串并解释其内容。它只能使用另一个字典或一系列键值对,您的行与这些标准不匹配。

您需要在此处使用ast.literal_eval() function

JapaneseCalendar

我还调整了dict()的检测;如果在行的开头找到from ast import literal_eval if line.startswith(self.kind): line = line[len(self.kind) + 1:] return literal_eval(line) ,我假设你想匹配它。