Чтение csv-файла в словарь

#python #csv

#python #csv

Вопрос:

Мой код выглядит так:

 from sys import argv
import csv

person = {}

file = argv[1]
sequence = (open(argv[2], 'r').read()).strip()

with open(file, 'r', newline = '') as csvfile:
    reader = csv.reader(csvfile)
    for k, v0, v1, v2, v3, v4, v5, v6, v7 in reader:
        person[k] = [v0, v1, v2, v3, v4, v5, v6, v7]
  

Есть ли какой-либо другой способ перебора столбцов для добавления в словарь более кратко или эффективно? Как, например, если вы не знаете количество столбцов?

Ответ №1:

Для достижения этой цели вы можете использовать нарезку списка: используйте первый элемент в строке в качестве ключа, а остальные элементы — в качестве значения.

 
with open(file, 'r', newline = '') as csvfile:
    for row in csv.reader(csvfile):
        person[row[0]] = row[1:]
  

Ответ №2:

Вы могли бы использовать unpacking :

 with open(file, 'r', newline = '') as csvfile:
    reader = csv.reader(csvfile)
    for key, *values in reader:
        person[key] = values
  

Ответ №3:

Вы также можете прочитать csv файл непосредственно в фрейм данных pandas:

 import pandas as pd

data = pd.read_csv("filename.csv")
  

затем поместите его в словарь

data.to_dict()