Используйте значения моего csv-файла в качестве переменных в Python для создания настраиваемого «объекта».

#python #python-3.x #list #csv #class

Вопрос:

Я хочу использовать значения этого csv-файла для создания пользовательской команды в GAM(Рабочее пространство Google).(Я бы использовал команду GAM, используя ОС импорта)

 Robert.Samson,50,false,teacher
Sam.Robertson,20,swimming,bartender
David.Bufi,100,biking,false
Med.Sevia,70,false,lawyer
 

Пример команды Роберт: gam queries ""directmanager='testuser@domain.com' issuspended=false, name='test'"" print users

Итак, как вы можете видеть, моя идея состоит в том, чтобы воссоздать эту команду, например, но с использованием значений csv, и сделать это для многих пользователей. Имейте в виду, что некоторые части команды по умолчанию будут отображаться как directmanager или issuspended.

Код, который у меня есть до сих пор:

 import csv

my_list = []
with open('myfile.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        my_list.append({'name': row[0], 'age': int(row[1]), 
                        'hobbies': row[2], 'profession': row[3]})
print(my_list)
 

Следует иметь в виду, что я не хочу принимать значения, которые являются ложными в csv, для использования Робертом, я не хочу принимать его хобби, потому что это ложь.

Примеры:

 gam queries ""directmanager='testuser@domain.com' issuspended=false name='Robert.Samson' age='50' profession='teacher'"" print users

gam queries ""directmanager='testuser@domain.com' issuspended=false, name='Sam.Robertson' age='20' hobbies=swimming profession='bartender' "" print users
 

Я не знаю, как лучше всего это сделать, у меня нет большого опыта в занятиях.

Есть какие-нибудь идеи?

Ответ №1:

Вы можете построить свой ряд более поэтапно:

 for row in reader:
    row_dict = {
        'name': row[0],
        'age': int(row[1],
        'profession': row[3]
    }

    if row[2]:
        row_dict['hobbies'] = row[2]

    my_list.append(row_dict)