Đối với các tệp CSV đơn giản, chẳng hạn như các tệp sau
id,col1,col2,col3
row1,r1c1,r1c2,r1c3
row2,r2c1,r2c2,r2c3
row3,r3c1,r3c2,r3c3
row4,r4c1,r4c2,r4c3
Bạn có thể chuyển đổi nó thành từ điển Python chỉ bằng cách sử dụng các bản dựng
with open[csv_file] as f:
csv_list = [[val.strip[] for val in r.split[","]] for r in f.readlines[]]
[_, *header], *data = csv_list
csv_dict = {}
for row in data:
key, *values = row
csv_dict[key] = {key: value for key, value in zip[header, values]}
Điều này sẽ mang lại từ điển sau
{'row1': {'col1': 'r1c1', 'col2': 'r1c2', 'col3': 'r1c3'},
'row2': {'col1': 'r2c1', 'col2': 'r2c2', 'col3': 'r2c3'},
'row3': {'col1': 'r3c1', 'col2': 'r3c2', 'col3': 'r3c3'},
'row4': {'col1': 'r4c1', 'col2': 'r4c2', 'col3': 'r4c3'}}
Lưu ý: Từ điển Python có các khóa duy nhất, vì vậy nếu tệp CSV của bạn đã trùng lặp ids
, bạn nên nối mỗi hàng vào một danh sách.
for row in data:
key, *values = row
if key not in csv_dict:
csv_dict[key] = []
csv_dict[key].append[{key: value for key, value in zip[header, values]}]
Chuyển đổi CSV thành từ điển trong Python
- Được tạo ra: Tháng 1-17, 2021 | Cập nhật:
- Sử dụng gấu trúc để chuyển đổi tệp CSV thành từ điển trong Python
Sử dụng mô -đun csv
để chuyển đổi tệp CSV thành từ điển trong Python
Hướng dẫn này sẽ giới thiệu cách chuyển đổi tệp CSV thành từ điển trong Python trong đó tệp CSV chứa hai cột. Cột đầu tiên chứa các phím và cột thứ hai chứa các giá trị.
Trong hướng dẫn này, nội dung cho CSV mẫu được hiển thị bên dưới.
Được tạo ra: Tháng 1-17, 2021 | Cập nhật:
Sử dụng mô -đun csv
để chuyển đổi tệp CSV thành từ điển trong Python
Hướng dẫn này sẽ giới thiệu cách chuyển đổi tệp CSV thành từ điển trong Python trong đó tệp CSV chứa hai cột. Cột đầu tiên chứa các phím và cột thứ hai chứa các giá trị.
import csv
dict_from_csv = {}
with open['csv_file.csv', mode='r'] as inp:
reader = csv.reader[inp]
dict_from_csv = {rows[0]:rows[1] for rows in reader}
print[dict_from_csv]
Output:
{'fruit': 'apple', 'vegetable': 'tomato', 'mammal': 'rabbit', 'fish': 'clownfish', 'bird': 'crow'}
Sử dụng gấu trúc để chuyển đổi tệp CSV thành từ điển trong Python
Một cách khác để chuyển đổi tệp CSV thành từ điển Python là sử dụng mô -đun Pandas, chứa các công cụ thao tác dữ liệu cho các tệp CSV.
Sau khi nhập gấu trúc, hãy sử dụng chức năng tích hợp
with open[csv_file] as f:
csv_list = [[val.strip[] for val in r.split[","]] for r in f.readlines[]]
[_, *header], *data = csv_list
csv_dict = {}
for row in data:
key, *values = row
csv_dict[key] = {key: value for key, value in zip[header, values]}
5 với một vài tham số để chỉ định định dạng tệp CSV. Sau khi gọi with open[csv_file] as f:
csv_list = [[val.strip[] for val in r.split[","]] for r in f.readlines[]]
[_, *header], *data = csv_list
csv_dict = {}
for row in data:
key, *values = row
csv_dict[key] = {key: value for key, value in zip[header, values]}
5, hãy chuyển đổi kết quả thành từ điển bằng cách sử dụng hàm gấu trúc tích hợp with open[csv_file] as f:
csv_list = [[val.strip[] for val in r.split[","]] for r in f.readlines[]]
[_, *header], *data = csv_list
csv_dict = {}
for row in data:
key, *values = row
csv_dict[key] = {key: value for key, value in zip[header, values]}
7.import pandas as pd
dict_from_csv = pd.read_csv['csv_file.csv', header=None, index_col=0, squeeze=True].to_dict[]
print[dict_from_csv]
Tham số
with open[csv_file] as f:
csv_list = [[val.strip[] for val in r.split[","]] for r in f.readlines[]]
[_, *header], *data = csv_list
csv_dict = {}
for row in data:
key, *values = row
csv_dict[key] = {key: value for key, value in zip[header, values]}
8 chỉ định rằng các tiêu đề được truyền hoặc khai báo rõ ràng bởi một tham số khác.with open[csv_file] as f:
csv_list = [[val.strip[] for val in r.split[","]] for r in f.readlines[]]
[_, *header], *data = csv_list
csv_dict = {}
for row in data:
key, *values = row
csv_dict[key] = {key: value for key, value in zip[header, values]}
9 Chỉ định cột nào được sử dụng làm nhãn cho đối tượng {'row1': {'col1': 'r1c1', 'col2': 'r1c2', 'col3': 'r1c3'},
'row2': {'col1': 'r2c1', 'col2': 'r2c2', 'col3': 'r2c3'},
'row3': {'col1': 'r3c1', 'col2': 'r3c2', 'col3': 'r3c3'},
'row4': {'col1': 'r4c1', 'col2': 'r4c2', 'col3': 'r4c3'}}
0 rằng hàm with open[csv_file] as f:
csv_list = [[val.strip[] for val in r.split[","]] for r in f.readlines[]]
[_, *header], *data = csv_list
csv_dict = {}
for row in data:
key, *values = row
csv_dict[key] = {key: value for key, value in zip[header, values]}
5 trả về. Trong trường hợp này, cột đầu tiên của Index {'row1': {'col1': 'r1c1', 'col2': 'r1c2', 'col3': 'r1c3'},
'row2': {'col1': 'r2c1', 'col2': 'r2c2', 'col3': 'r2c3'},
'row3': {'col1': 'r3c1', 'col2': 'r3c2', 'col3': 'r3c3'},
'row4': {'col1': 'r4c1', 'col2': 'r4c2', 'col3': 'r4c3'}}
2 là các nhãn.Cuối cùng, tham số
{'row1': {'col1': 'r1c1', 'col2': 'r1c2', 'col3': 'r1c3'},
'row2': {'col1': 'r2c1', 'col2': 'r2c2', 'col3': 'r2c3'},
'row3': {'col1': 'r3c1', 'col2': 'r3c2', 'col3': 'r3c3'},
'row4': {'col1': 'r4c1', 'col2': 'r4c2', 'col3': 'r4c3'}}
3 xác định nếu dữ liệu chỉ chứa một cột cho các giá trị. Trong trường hợp này, chỉ có một cột do cột đầu tiên được sử dụng làm cột chỉ mục hoặc nhãn.Output:
{'fruit': 'apple', 'vegetable': 'tomato', 'mammal': 'rabbit', 'fish': 'clownfish', 'bird': 'crow'}
Ghi chú
Nếu bạn gặp lỗi cho biết
{'row1': {'col1': 'r1c1', 'col2': 'r1c2', 'col3': 'r1c3'},
'row2': {'col1': 'r2c1', 'col2': 'r2c2', 'col3': 'r2c3'},
'row3': {'col1': 'r3c1', 'col2': 'r3c2', 'col3': 'r3c3'},
'row4': {'col1': 'r4c1', 'col2': 'r4c2', 'col3': 'r4c3'}}
4, thì hãy đảm bảo rằng {'row1': {'col1': 'r1c1', 'col2': 'r1c2', 'col3': 'r1c3'},
'row2': {'col1': 'r2c1', 'col2': 'r2c2', 'col3': 'r2c3'},
'row3': {'col1': 'r3c1', 'col2': 'r3c2', 'col3': 'r3c3'},
'row4': {'col1': 'r4c1', 'col2': 'r4c2', 'col3': 'r4c3'}}
5 được cài đặt trong máy cục bộ của bạn bằng cách sử dụng {'row1': {'col1': 'r1c1', 'col2': 'r1c2', 'col3': 'r1c3'},
'row2': {'col1': 'r2c1', 'col2': 'r2c2', 'col3': 'r2c3'},
'row3': {'col1': 'r3c1', 'col2': 'r3c2', 'col3': 'r3c3'},
'row4': {'col1': 'r4c1', 'col2': 'r4c2', 'col3': 'r4c3'}}
6 hoặc {'row1': {'col1': 'r1c1', 'col2': 'r1c2', 'col3': 'r1c3'},
'row2': {'col1': 'r2c1', 'col2': 'r2c2', 'col3': 'r2c3'},
'row3': {'col1': 'r3c1', 'col2': 'r3c2', 'col3': 'r3c3'},
'row4': {'col1': 'r4c1', 'col2': 'r4c2', 'col3': 'r4c3'}}
7 nếu bạn đang chạy Python 3.