Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python - создание list of dicts в цикле / 2 сообщений из 2, страница 1 из 1
24.03.2017, 13:15
    #39426502
Marishka25
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python - создание list of dicts в цикле
Подскажите пожалуйста, возможно ли реализовать такую конструкцию?

Сейчас код выглядит так:

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
import unicodecsv as csv

file_path = 'main.csv'

def csv_reader(csv_file_name):
    with open(csv_file_name, 'rb') as csvfile:
        reader = csv.DictReader(csvfile)
        csv_list = []
        for row in reader:
            csv_list.append({'FirstName':row['FileName'], 'SecondName':row['SecondName']})
            print(row['FileName'], row['SecondName'])
    return csv_list
  
el_list = csv_reader(file_path)



Так хочется что бы выглядел код:

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
import unicodecsv as csv

file_path = 'main.csv'
output_fields = ['FileName', 'SecondName']

def csv_reader(csv_file_name, output_fields):
    with open(csv_file_name, 'rb') as csvfile:
        reader = csv.DictReader(csvfile)
        csv_list = []
        for row in reader:
            csv_list.append(dict(zip(output_fields[::1], row[output_fields[::1]])))
            print(row[e] for e in output_fields)
    return csv_list
  
el_list = csv_reader(file_path, output_fields)



т.е. основная задача при вставке в список элемента (каждый элемент это словарь) генерировать словарь исходя из списка ключей словаря, который передается параметром. Имена ключей словаря и мена полей - совпадают.

Код: python
1.
2.
3.
  for row in reader:
            csv_list.append({'FirstName':row['FileName'], 'SecondName':row['SecondName']})
            print(row['FileName'], row['SecondName'])



Код: python
1.
2.
3.
       for row in reader:
            csv_list.append(dict(zip(output_fields[::1], row[output_fields[::1]])))
            print(row[e] for e in output_fields)
...
Рейтинг: 0 / 0
25.03.2017, 13:49
    #39427018
mini.weblab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python - создание list of dicts в цикле
Marishka25,

Код: python
1.
2.
3.
4.
for row in reader:
    sel_values = [row[field] for field in output_fields]
    csv_list.append(dict(zip(output_fields, sel_values)))
    print(row[e] for e in output_fields)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python - создание list of dicts в цикле / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]