太多值无法解压缩(应为2)

2024-04-20 07:53:19 发布

您现在位置:Python中文网/ 问答频道 /正文

def read_dict(file_name):
    f=open(file_name,'r')
    dict_rap={}
    for key, val in csv.reader(f):
        dict_rap[key]=str(val)
    f.close()
    return(dict_rap)
test_dict = {'wassup':['Hi','Hello'],'get up through':['to leave','to exit'],
             'its on with you':['good bye','have a nice day'],'bet':['ok','alright'],'ight':['ok','yes'],
              'whip':['car','vechile'],'lit':['fun','festive'],'guap':['money','currency'],'finesse':['to get desired results by anymeans','to trick someone'],
             'jugg':['how you makemoney','modern term for hustle'],'1111':['www'] }
^{pr2}$

Tags: tokeynameinyouforreadget
3条回答

来自csv文档。。。在

In [2]: csv.reader??
Docstring:
csv_reader = reader(iterable [, dialect='excel']
                        [optional keyword args])
    for row in csv_reader:
        process(row)
......
......
The returned object is an iterator.  Each iteration returns a row

我想这是不言自明的。。。在

我想那张单子的每一行都是你想要的字典。因此您的dict处理代码应该进入一个迭代中,该迭代将迭代csv.reader返回的fat列表

恐怕csv.reader(f)不能返回您期望它返回的内容。我不知道你的.csv文件到底是什么样子,但我怀疑它是否直接返回你试图放入字典的两个值。在

假设.csv的前3行如下所示:

wassup,hi,hello
get up through,to leave,to exit
its on you,good bye,have a nice day

获取.cvs并遍历每一行的更好方法可能是:

^{pr2}$

它说的是csv.reader(f) 只会产生一件事,而你正试图把它当作两件事(key和val)。在

假设您使用的是标准csv模块,那么您得到的只是一个项目的列表。如果您希望输入有两个项,那么可能需要指定一个不同的分隔符。例如,如果输入的是分号而不是逗号:

csv.reader(f, delimiter=";")

相关问题 更多 >