[英]ValueError in python3.5
我不断收到此错误“ ValueError: not enough values to unpack (expected 2, got 1)in for(word,tag) in grp:"
这是我尝试过的# --编码:utf-8 --import nltk import itertools导入ast导入集合导入sys导入重新导入时间
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
因此, 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
。
f=open('C://Users//DELL//Desktop//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('C://Users//DELL//Desktop//test1.txt','r')
text5=f.read()
#text6=text5.splitlines()
text6=text5.strip()
text7=text6.strip()
orig_data=text7
print(orig_data)
orgword=[]
orgtags=[]
#orig_data=train_data
#print("original data")
#print(orig_data)
for grp in train_data:
for word in grp:
orgword.append(word)
#orgtags.append(tag)
print("Original Words")
print(orgword)
print("Original Tags")
print(orgtags)
#fix it...!!!(U get word in test)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.