2024-05-23 19:25:07 发布
网友
这是一个CSV文件kidsList.csv,逗号分隔,第一行是一个标题。第一列Id是唯一的,因此可以将其用作主键。在
kidsList.csv
Id,Name,Age A1,Alice,6 A2,Becca,5 B1,Cindy,7
现在我想找到Id为A2的名称;答案应该是“Becca”。在
在SQL中它类似于SELECT Name FROM table WHERE Id = "A2"
SELECT Name FROM table WHERE Id = "A2"
如何在python3.x中实现这一点?这个操作非常简单,所以我想使用标准库,比如csv,而不是像{}这样的非标准库。在
csv
您可以使用csv库将csv文件转换为二维列表,然后在数组中循环:
import csv key = 'A2' category = 'Name' with open('kidsList.csv', 'r') as file: contents = list(csv.reader(file)) index = contents[0].index(category) for i in range(1, len(contents)): if contents[i][0] == key: print(contents[i][index]) break
我认为可以使用csv.DictReader类创建一个字典映射,您可以根据Id列的值为其编制索引:
import csv from collections import OrderedDict kids = OrderedDict() _name = 0 _age = 1 with open('kidsList.csv', newline='') as csvfile: reader = csv.DictReader(csvfile, fieldnames=("Id",),restkey="data_list") for row in reader: kids[row["Id"]] = row["data_list"] print(f"ID = A1 has data: name= {kids['A1'][_name]}, age= {kids['A1'][_age]} ") # Expected Output: # ID = A1 has data: name= Alice, age= 6
您可以使用csv库将csv文件转换为二维列表,然后在数组中循环:
我认为可以使用csv.DictReader类创建一个字典映射,您可以根据Id列的值为其编制索引:
相关问题 更多 >
编程相关推荐