Обработка данных из csv

всем привет. Прошу помощи. есть csv файл в таком виде, привожу неполный список

Questions,Answers,Directions
Курьер поздоровался с вами?,да;нет,2;2
Как и во что был одет курьер?,да;нет,3;3
Курьер соблюдает субординацию?,да;нет,4;4
Курьер проявляет индивидуальный подход?,да;нет,5;5
Курьер поблагодарил за заказ и попрощался с вами?,да;нет,6;6
Заказ доставлен своевременно?,да;нет,7;7
"Курьер предупредил вас заранее о том, что подъезжает (звонок/sms)?",да;нет,8;8

В котором цифры указывают на связь с др вопросами по индексу (далее в файле есть такие)

Мне нужно обрабатывать файл таким образом, чтобы 0. Завести список, куда будет записываться имя(кот надо спросить), вопрос и ответ(из csv)

  1. Предлагать вопрос и варианты ответа
  2. Проверять ответы на наличие подобных, если нет, то попросить еще раз ввести
  3. Записывать в список [имя, вопрос ответ]
  4. Если есть связь по индексу, задать еще вопрос и записать, естественно
  5. Полученный список записать в др csv файл.

Реализация. Функция чтения файла и записи - просто реализуется, это понятно. Не понятно, как мне этот файл обработать, чтобы подавать и вопросы и варианты ответов. Это первое. Второе как создать связь и прочитать ее, исходя из индексов.

есть такой код

def ask_question(question, answers):
print(f'Вопрос: {question}')
print('Введите вариант ответа:')
for i, ans in enumerate(answers, 1):
    print(f'{i}) {ans}')
return int(input()) - 1


def questions_processing(file):
"""Обработка вопросов из csv."""
    i = 0
    while True:
        questions = csv_reader(file)
        line = questions[i]
        question, answers, go_to = line.split(',')
        num_answer = ask_question(question, answers.split(';'))
        i = int(go_to.split(';')[num_answer]) - 1

Проблема в том, что если есть данные в кавычках, то ошибка, и если заканчивается файл, то ошибка, так же нет проверки валидации ответа. Потому что не понимаю как реализовать.


Ответы (1 шт):

Автор решения: passant

По сути, уважаемый MaxU вам уже ответил "парсить правильным инструментом". Если бы вы дали себе труд не оспаривать, а хотя-бы ознакомиться с тем, что он рекомендует, то поняли бы, что данные инструменты позволяют парсить данные не непонятно куда, а например в DataFrame, который может сильно упростить вам жизнь, взяв на себя работу с индексами. В том числе при импорте-экспорте данных в файл. И именно эти индексы можно использовать в качестве указателей на связь между вопросами. Это есть ответ на вопрос - "как создать связь и прочитать ее, исходя из индексов".

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

→ Ссылка