user_history.txt里存的是:
{'name': '电脑', 'price': 19999}{'name': '电脑', 'price': 19999}
with open("user_history.txt", "w+")as f2:
history = f2.read()
history = eval(history)
print(history)
当执行history = eval(history)这条语句时就会出错
eval的参数可以是表示字典、列表和元组的字符串,你传入的{'name': '电脑', 'price': 19999}{'name': '电脑', 'price': 19999}
不是这三个之一,所以出错了。我猜你是想构造一个列表吧,这个列表里有两个字典,是这样吗?如果是的话,你需要先处理一下读出来的东西,格式化为列表:[{'name': '电脑', 'price': 19999}, {'name': '电脑', 'price': 19999}]
。就是这样,别忘了结贴!
请问传入的那个为什么不算字典呢?
@stu*sun: 我无言以对......
{key:value}
这样才是一个字典。
@会长:我是初学者,有些不太明白
{key1 : value1, key2 : value2 }
我是这样写的,也算字典吧?
@stu*sun: 算。但是{key:value}{key:value}就不算了
@会长: 那如果要eval()多个值该怎么办呢?
@stu*sun: 就像我那样,搞成列表。或者eval多次
@会长: 我改了下程序,按你说的改的 ,当输入是一个值得时候可以但是两个值以上就会报错
@会长:
是这样的吗?
@stu*sun: 不明白
@stu*sun: 这样写能编译通过,怎么感觉不是python的语法,第一行右侧是什么?
@会长: 啊 找着问题了 我知道了 谢谢指导
@stu*sun: 别忘了给我园豆
@会长: 第一行右边是 debug时显示的