繁体   English   中英

python3.5中的ValueError

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM