Python-如何从.csv文件读取dictionary



我有一个由逗号分隔的五列组成的文件,即

g,1,2,3,4 
c,4,2,6,8
d,5,6,8,9

我想把这个文件读到字典中,这样第1列是关键字,第2-4列是整数值,即

d = {"g":[1, 2, 3, 4], "c":[4, 2, 6, 8], ...etc}

我一直在玩我在互联网上找到的一个代码片段,但它返回了一个ValueError:太多的值无法打开(预期为2(

d = {}
with open("file.csv") as f:
for line in f:
(key, val) = line.split(",")
d[key] = int(val)

以下是一种使用内置csv模块的方法

import csv
with open('a.csv', newline='') as csvfile:
value = {}
for row in csv.reader(csvfile):
value[row[0]] = list(map(int,row[1:]))
print(value)

输出:

{'g': [1, 2, 3, 4], 'c': [4, 2, 6, 8], 'd': [5, 6, 8, 9]}

您就快到了。试试这个。我觉得它很可读。

d = {}
with open("file.csv") as f:
for line in f:
data = line.split(",")
key = data[0]
val = [int(x) for x in data[1:]]
d[key] = val

类似的东西

data = {}
with open('data.txt') as f:
lines = [l.strip() for l in f]
for line in lines:
fields = line.split(',')
data[fields[0]] = [int(x) for x in fields[1:]]
print(data)

输出

{'g': [1, 2, 3, 4], 'c': [4, 2, 6, 8], 'd': [5, 6, 8, 9]}

试试这个

import pandas as pd

df = pd.read_csv("file.csv")
dct = df.to_dict()

类似的东西?

d = {}
with open("file.csv") as f:
for line in f:
line = line.strip()
l = line.split(",")
d[l[0]] = [int(e) for e in l[1:]]
print(d)

输出

{'g': [1, 2, 3, 4], 'c': [4, 2, 6, 8], 'd': [5, 6, 8, 9]}

最新更新