Hướng dẫn python csv to dictionary with header - python csv vào từ điển có tiêu đề

21

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có một tệp CSV, test.csv, như được hiển thị:

1,2,3
a,b,c
d,e,f

Tôi muốn những điều trên trông giống như một từ điển như được hiển thị:

{"1":"a", "2":"b", "3":"c"}
{"1":"d", "2":"e", "3":"f"}

Trong đó tiêu đề 1,2,3 là các phím và các hàng là giá trị.

Tôi hoàn toàn không hiểu làm thế nào để hoàn thành việc này bằng cách sử dụng csv.dictreader. Các mẫu trên chỉ là một mẫu. Dữ liệu thực tế mà tôi đang làm việc có nhiều cột và do đó, tôi không thể truy cập từng hàng bằng cách sử dụng chỉ mục của nó và đặt chúng vào một từ điển theo cách thủ công.

Đã hỏi ngày 12 tháng 11 năm 2014 lúc 7:51Nov 12, 2014 at 7:51

user1452759user1452759user1452759

8.15613 Huy hiệu vàng40 Huy hiệu bạc54 Huy hiệu đồng13 gold badges40 silver badges54 bronze badges

2

Trả lời câu hỏi của riêng tôi. Sau khi cố gắng đôi khi, tôi vừa chơi xung quanh với nó thêm một chút và thêm vòng lặp cho.

with open["test.csv"] as f:
    records = csv.DictReader[f]
    for row in records:
         print row

Điều này cung cấp cho đầu ra mong muốn của tôi về

{'1': 'a', '3': 'c', '2': 'b'}
{'1': 'd', '3': 'f', '2': 'e'}

Đã trả lời ngày 12 tháng 11 năm 2014 lúc 7:59Nov 12, 2014 at 7:59

user1452759user1452759user1452759

8.15613 Huy hiệu vàng40 Huy hiệu bạc54 Huy hiệu đồng13 gold badges40 silver badges54 bronze badges

1

Trả lời câu hỏi của riêng tôi. Sau khi cố gắng đôi khi, tôi vừa chơi xung quanh với nó thêm một chút và thêm vòng lặp cho.

Điều này cung cấp cho đầu ra mong muốn của tôi về

>>> a = open['/tmp/test.csv']
>>> a = csv.DictReader[open['/tmp/test.csv'], delimiter=',']
>>> [x for x in a]
[{'1': 'a', '3': 'c', '2': 'b'}, {'1': 'd', '3': 'f', '2': 'e'}]

Đã trả lời ngày 12 tháng 11 năm 2014 lúc 7:59

Theo mặc định, dòng đầu tiên sẽ lấy như FileDname trong

{"1":"a", "2":"b", "3":"c"}
{"1":"d", "2":"e", "3":"f"}
0Nov 12, 2014 at 8:06

0

  • Giới thiệu
  • Mã Python để đọc CSV thành mảng từ điển
  • Đầu ra dưới dạng mảng từ điển
  • Tiếp theo

Giới thiệu

Mã Python để đọc CSV thành mảng từ điển

firstname,lastname,address,city,state,pin
John,Doe,120 jefferson st.,Riverside, NJ, 08075
Jack,McGinnis,220 hobo Av.,Phila, PA,09119
"John ""Da Man""",Repici,120 Jefferson St.,Riverside, NJ,08075
Stephen,Tyler,"7452 Terrace ""At the Plaza"" road",SomeTown,SD, 91234
,Blankman,,SomeTown, SD, 00298
"Joan ""the bone"", Anne",Jet,"9th, at Terrace plc",Desert City,CO,00123

Mã Python để đọc CSV thành mảng từ điển

def read[filepath]:
  content = []
  with open[filepath] as csvfile:
    csv_reader = csv.reader[csvfile]
    headers = next[csv_reader]

    for row in csv_reader:
      row_data = {key: value for key, value in zip[headers, row]}
      content.append[row_data]

  return content

content = read["addresses.csv"]
print[content]

Đầu ra dưới dạng mảng từ điển

[{
  'firstname': 'John',
  'lastname': 'Doe',
  'address': '120 jefferson st.',
  'city': 'Riverside',
  'state': ' NJ',
  'pin': ' 08075'
}, {
  'firstname': 'Jack',
  'lastname': 'McGinnis',
  'address': '220 hobo Av.',
  'city': 'Phila',
  'state': ' PA',
  'pin': '09119'
}, {
  'firstname': 'John "Da Man"',
  'lastname': 'Repici',
  'address': '120 Jefferson St.',
  'city': 'Riverside',
  'state': ' NJ',
  'pin': '08075'
}, {
  'firstname': 'Stephen',
  'lastname': 'Tyler',
  'address': '7452 Terrace "At the Plaza" road',
  'city': 'SomeTown',
  'state': 'SD',
  'pin': ' 91234'
}, {
  'firstname': '',
  'lastname': 'Blankman',
  'address': '',
  'city': 'SomeTown',
  'state': ' SD',
  'pin': ' 00298'
}, {
  'firstname': 'Joan "the bone", Anne',
  'lastname': 'Jet',
  'address': '9th, at Terrace plc',
  'city': 'Desert City',
  'state': 'CO',
  'pin': '00123'
}]

Tiếp theo

Giả sử chúng ta có CSV một cái gì đó tương tự như sau:

Làm cách nào để chuyển đổi tệp CSV thành từ điển trong Python?

Cách tốt nhất để chuyển đổi tệp CSV thành từ điển Python là tạo đối tượng tệp CSV F bằng cách mở ["my_file.csv"] và chuyển nó theo phương thức CSV.DicTreader [f]. Giá trị trả về là một từ điển có thể đi được, một mỗi hàng trong tệp CSV, ánh xạ tiêu đề cột từ hàng đầu tiên đến giá trị hàng cụ thể.create a CSV file object f using open["my_file. csv"] and pass it in the csv. DictReader[f] method. The return value is an iterable of dictionaries, one per row in the CSV file, that maps the column header from the first row to the specific row value.

Làm thế nào để bạn đọc một tệp CSV trong một python tiêu đề?

Đọc CSV bằng mô -đun sẵn có của Python có tên CSV bằng CSV ...
Nhập thư viện CSV. Nhập CSV ..
Mở tệp CSV. Các . ....
Sử dụng đối tượng CSV.Reader để đọc tệp CSV. csvreader = csv.Reader [tệp].
Trích xuất tên trường. Tạo một danh sách trống gọi là tiêu đề. ....
Trích xuất các hàng/hồ sơ. ....
Đóng tệp ..

Mô -đun nào có thể đọc dữ liệu từ tệp .CSV được phân tách bằng dấu phẩy vào từ điển Python cho mỗi hàng?

DicTreader [] Các đối tượng của CSV.Lớp DicTreader [] có thể được sử dụng để đọc tệp CSV dưới dạng từ điển. The objects of a csv. DictReader[] class can be used to read a CSV file as a dictionary.

Lớp nào có thể được sử dụng để ánh xạ từ điển vào các hàng CSV?

Lớp Dictwriter và sử dụng hai trong số các phương pháp sau: DictWriter.WriteHeader [] được sử dụng để viết một hàng các tiêu đề / tên trường vào tệp CSV đã cho. and uses two of its following methods: DictWriter. writeheader[] is used to write a row of column headings / field names to the given CSV file.

Bài Viết Liên Quan

Chủ Đề