如何将csv文件数据添加到字典中

时间:2017-11-16 19:18:08

标签: python csv

我在编程方面非常新,如何创建一个调用游览ID并显示给定信息的字典。(游览,开始,结束)

巡回赛=巡回赛名称

开始=开始时可用的预订

结束=保留金额

csv文件列:

ID     |   Tour   | Start | End

12345  |  Italy   |  100  | 80

13579  |  China   |  50   | 30

24680  |  France  |  50   | 30

例如,如果我调用ID:“12345”,它将显示 - 意大利,100,80

4 个答案:

答案 0 :(得分:1)

你的问题很模糊,但制作一个词典很容易。

d={
  '12345' : ['Italy',100,80],
 ....#add more as needed
}

现在d ['12345']将返回包含信息的列表。不确定你还需要什么...

答案 1 :(得分:1)

首先让我们创建文件:

with open("test.csv", "w") as f:
        f.write("""\
ID,Tour,Start,End
12345,Italy,100,80
13579,China,50,30
24680,France,50,30""")

如果您打算使用Python和表格,我推荐使用pandas。这是一个单行:

import pandas as pd

d = pd.read_csv("test.csv",sep=",").set_index('ID').to_dict(orient='i')

d返回

{12345: {'End': 80, 'Start': 100, 'Tour': 'Italy'},
 13579: {'End': 30, 'Start': 50, 'Tour': 'China'},
 24680: {'End': 30, 'Start': 50, 'Tour': 'France'}}

或者也许:

import pandas as pd

df = pd.read_csv("test.csv",sep=",").set_index('ID')
d = dict(zip(df.index,df.values.tolist()))

d返回

{12345: ['Italy', 100, 80],
 13579: ['China', 50, 30],
 24680: ['France', 50, 30]}

答案 2 :(得分:1)

你可以试试这个:

import csv
data = list(csv.reader(open('filename.csv')))
final_data = {int(i[0]):[int(b) if b.isdigit() else b for b in i[1:]] for i in data}

答案 3 :(得分:0)

csv = """ID     |   Tour   | Start | End
12345  |  Italy   |  100  | 80
13579  |  China   |  50   | 30
24680  |  France  |  50   | 30"""

d = [[v.strip() for v in row.split('|')] for row in csv.split('\n')]
d = dict((row[0], row[1:]) for row in d)

print(d["12345"])