[英]Python - How to read from .csv file to a dictonary?
我有一个由逗号分隔的五列组成的文件,即,
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: too many values to unpack (expected 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]}
尝试这个
import pandas as pd
df = pd.read_csv("file.csv")
dct = df.to_dict()
就像是
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]}
像这样的东西?
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]}
你快到了。 尝试这个。 我认为它的可读性很强。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.