繁体   English   中英

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

[英]How do I add csv file data into a dictionary

我是编程上的新手,我该如何制作一个字典来调用Tour ID并显示给定的信息。(Tour,Start,End)

游览=游览名称

开始=开始时可用的预订

结束=剩余预留量

csv文件列:

ID     |   Tour   | Start | End

12345  |  Italy   |  100  | 80

13579  |  China   |  50   | 30

24680  |  France  |  50   | 30

例如,如果我呼叫ID:“ 12345”,它将显示-Italy,100,80

您的问题很模糊,但是做出命令很容易。

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

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

首先让我们创建文件:

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]}

您可以尝试以下方法:

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}
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"])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM