我有以下数据的 csv 文件
val1,val2,val3
1,2,3
22,23,33
那么如何将数据转换为 dict
dict1 = { 'val1': 1, 'val2': 2, 'val3': 3}
dict2 = { 'val1': 22, 'val2': 23, 'val3': 33}
fp = open('file.csv', 'r')
reader = csv.reader(fp)
for row in reader:
????
谢谢
import csv
reader = csv.DictReader(open('myfile.csv'))
for row in reader:
# profit !
fieldnames参数是一个sequence
,其元素与输入数据的字段相关联。这些元素将成为结果字典的键。如果fieldnames参数的
在这里的其他答案中提到的使用“csv”的很酷的事情是,它可以用于读取文件(明显的用例),但也可以解析常规的 csv 格式的字符串。
读取 csv 文件的示例:
import csv
with open('my_file.csv') as f:
for line in csv.DictReader(f, fieldnames=('val1', 'val2', 'val3')):
print(line)
请注意,您可以显式传递您想要作为键的标题,这使得使用不带标题的 csv 文件非常容易。
另一个用例是只读取一个带有 'csv' 的常规字符串
例子:
import csv
my_csv_string = 'val1, val2, val3'
my_csv_dict = next(csv.DictReader(StringIO(s), fieldnames=('key1', 'key2', 'key3')))
无论如何,csv.DictReader()
是你所需要的。
我经常想在操作 CSV 的同时升级到熊猫。它给你一个全新的可能性世界。
import pandas as pd
df=pd.read_csv('test.csv')
for index, row in df.iterrows():
d=row.to_dict()
print(d)
print("")
print( df[df.val3>10].iloc[0].to_dict() )
print( list(df[['val3']]['val3']) )
输出:
{'val1': 1, 'val2': 2, 'val3': 3}
{'val1': 22, 'val2': 23, 'val3': 33}
{'val1': 22, 'val2': 23, 'val3': 33}
[3, 33]
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(80条)