我正在尝试从csv文件读入字典。问题是,我每行有3个值(不仅仅是2个值),并希望转换为dict,其中第一个值是键,最后两个值组合为一个值(例如,使用列表或元组)。例如,我在csv中有以下内容:
Calcium Enriched 100% Lactose Free Fat Free Milk,2346,57876.0
Large Organic Omega3 Brown Eggs,2568,86280.0
Roasted & Salted Shelled Pistachios,919,29358.0
Chocolate Peanut Butter Protein Bar,801,21296.0
我希望输出是这样的:
{'Calcium Enriched 100% Lactose Free Fat Free Milk': [2346,57876.0]}
{'Large Organic Omega3 Brown Eggs': [2568,86280.0]}
{'Roasted & Salted Shelled Pistachios': [919,29358.0]}
{'Chocolate Peanut Butter Protein Bar': [801,21296.0]}
我试着用正常的方式来做:
with open('avg_prod_reorder_time.csv', 'r', encoding='utf-8') as csv_file:
reader = csv.reader(csv_file)
avg_prod_reorder_time = dict(reader)
但我得到以下错误:
ValueError: dictionary update sequence element #0 has length 3; 2 is required
如何解决这个问题?谢谢
你不必使用csv。只需逐行读取文件并将其拆分
假设你有这样一个csv文件
一些.csv文件
你可以试试这个
输出:
解释:
这是你感兴趣的部分
我们在分配
mydict[row[0]]
与row[1:]
也就是第一个
mydict['Hello']
与row[1:]
即[1,2]
列表切片其他线路也一样
注意:
列表切片是指基于索引对列表进行切片, 如果你不知道的话,试试这个。一般形式是这样的
你的清单[start:stop]
注意开始是包含的停止是独占的
这将根据需要创建dict:
dict由键/值对组成,但您的数据不是成对格式化的。上面的代码将第一个元素作为键,并形成所有剩余元素的列表。条件
if r
跳过空行相关问题 更多 >
编程相关推荐