我有一个由逗号分隔的五列组成的文件,即
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]}