Как скопировать файл csv в словарь? - PullRequest
0 голосов
/ 10 июля 2020

Я работаю над cs50 pset6, DNA, и я хочу прочитать файл csv, который выглядит так:

name,AGATC,AATG,TATC
Alice,2,8,3
Bob,4,1,5
Charlie,3,2,5

Но проблема в том, что словари имеют только ключ и значение, поэтому я не знаю, как мне это структурировать. В настоящее время у меня есть этот фрагмент кода:

import sys

with open(argv[1]) as data_file:
    data_reader = csv.DictReader(data_file)

Кроме того, в моем файле CSV есть несколько столбцов и строк, с заголовком и первым столбцом, указывающим имя человека. Я не знаю, как это сделать, и позже мне нужно будет получить доступ к индивидуальному количеству, например, Alice, значение AATG.

Кроме того, я использую модуль sys, для импорта DictReader, а также reader

1 Ответ

0 голосов
/ 11 июля 2020

Вы всегда можете попробовать создать функцию самостоятельно.

Вы можете использовать мой код здесь:

def csv_to_dict(csv_file):
    key_list = [key for key in csv_file[:csv_file.index('\n')].split(',')] # save the keys
    data = {} # every dictionary
    info = [] # list of dicitionaries
    # for each line
    for line in csv_file[csv_file.index('\n') + 1:].split('\n'):
        count = 0 # this variable saves the key index in my key_list.
        # for each string before comma
        for value in line.split(','):
            data[key_list[count]] = value # for each key in key_list (which I've created before), I put the value. This is the way to set a dictionary values.
            count += 1
        info.append(data) # after updating my data (dictionary), I append it to my list.
        data = {} # I set the data dictionary to empty dictionary.
    print(info) # I print it.

### Be aware that this function prints a list of dictionaries.

...