python3.5中的ValueError

时间:2018-05-24 06:49:35

标签: python python-3.x

我经常收到此错误" ValueError: not enough values to unpack (expected 2, got 1)in for(word,tag) in grp:" 这就是我所尝试过的     # - - 编码:utf-8 - -     import nltk     import itertools     导入ast     导入集合     导入系统     进口重新     进口时间

f=open('test.txt','r')
text1=f.read()
text2=text1.rstrip()
text3=text2.strip()
#text3=tuple(text1)
#print(text3)

print("text3")


train_data=text3


print(train_data)

f=open('test1.txt','r')
text5=f.read()
#text6=text5.splitlines()
text6=text5.strip()
text7=text6.rstrip()
orig_data=text7

1 个答案:

答案 0 :(得分:2)

所以,train_data只是一个str。请注意您如何从文件中读取它并且不做任何事情将其更改为代码。如果您想确认,请致电print(type(train_data))。你会得到<class 'str'>

您可以使用for循环遍历str,这就是您的第一个循环有效的原因,但在第二个循环中,您只是循环遍历原始str中的字符。

如果要将其用作实际数据,则必须将其解析并将其转换为Python数据结构。不要为此使用EVAL。而是使用ast库(如果数据出错,则更安全,更稳定):

import ast
# … later …
train_data = ast.literal_eval(text3)

然后在您使用时继续使用train_data