Обработка данных из csv
всем привет. Прошу помощи. есть csv файл в таком виде, привожу неполный список
Questions,Answers,Directions
Курьер поздоровался с вами?,да;нет,2;2
Как и во что был одет курьер?,да;нет,3;3
Курьер соблюдает субординацию?,да;нет,4;4
Курьер проявляет индивидуальный подход?,да;нет,5;5
Курьер поблагодарил за заказ и попрощался с вами?,да;нет,6;6
Заказ доставлен своевременно?,да;нет,7;7
"Курьер предупредил вас заранее о том, что подъезжает (звонок/sms)?",да;нет,8;8
В котором цифры указывают на связь с др вопросами по индексу (далее в файле есть такие)
Мне нужно обрабатывать файл таким образом, чтобы 0. Завести список, куда будет записываться имя(кот надо спросить), вопрос и ответ(из csv)
- Предлагать вопрос и варианты ответа
- Проверять ответы на наличие подобных, если нет, то попросить еще раз ввести
- Записывать в список [имя, вопрос ответ]
- Если есть связь по индексу, задать еще вопрос и записать, естественно
- Полученный список записать в др 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 шт):
По сути, уважаемый MaxU вам уже ответил "парсить правильным инструментом". Если бы вы дали себе труд не оспаривать, а хотя-бы ознакомиться с тем, что он рекомендует, то поняли бы, что данные инструменты позволяют парсить данные не непонятно куда, а например в DataFrame, который может сильно упростить вам жизнь, взяв на себя работу с индексами. В том числе при импорте-экспорте данных в файл. И именно эти индексы можно использовать в качестве указателей на связь между вопросами. Это есть ответ на вопрос - "как создать связь и прочитать ее, исходя из индексов".
Эта фраза " Не понятно, как мне этот файл обработать, чтобы подавать и вопросы и варианты ответов." - осталась непонятна. Куда надо "подавать" вопросы и ответы?