LernApp - Fragen und Antworten als dictionary aus CSV einlesen
Verfasst: Sonntag 27. Juni 2021, 19:24
Hello 
vor kurzem habe ich angefangen Python zu lernen. Da ich mittlerweile das Gefühl habe die Grundlagen zu verstehen, dachte ich mir, dass ich mich mal an ein eigenes Projekt wage. Und zwar möchte ich ähnlich einer Quiz App ein Programm zum Lernen von Python schreiben, was auch dazu dienen soll, dass ich immer mal wieder die verschiedenen Inhalte von Python wiederhole.
Auf dieser Seite (https://dev.to/mindninjax/how-to-build- ... ython-10ik) habe ich eine, wie ich finde ganz gute Vorlage gefunden, wie ich so ein "Python-Lernquiz" aufbauen könnte. Nach und nach möchte die Teile des Programmes auf meine Bedürfnisse umschreiben und mir die Sprache so auch ein bisschen erarbeiten.
Zuerst möchte ich einmal eine Grundstruktur schaffen, die einige Fragen abfragt. Danach würde ich gerne einige Kategorien/Kapitel/Level erschaffen, die man irgendwann einmal über eine Score freispielen muss. So viel zur Grundidee.
Jetzt habe ich natürlich das Problem, dass ich ganz am Anfang bei der Organisation der Daten festhänge. In der Vorlage werden die Fragen und Antworten in einem Dictionary gespeichert.
Ich würde die Fragen und Antworten gerne in einer externen Datei speichern, damit ich diese später leichter bearbeiten und erweitern kann. CSV Dateien bieten die Möglichkeit die Dateien leicht mit Excel nachzubearbeiten, deshalb erscheint mir das irgendwie eine gute Wahl zu sein.
Die Daten mit dem Dict.Reader einzulesen bekomme ich auch hin.
Was ich aber nicht hinbekomme ist, die Daten so einzulesen und in einem Dictionary zu speichern, dass ich die Fragen und Antworten wie bei der Vorlage weiterverarbeiten kann. Die Zeilen werden mit Key und Value in einem Dictionary eingelesen, weiter komme ich leider nicht.
Kann mir hier jmd einen Tipp geben, wie das geht? Falls es (für Anfänger) bessere Möglichkeiten gibt die Fragen und Antworten extern zu speichern, dann bin ich dafür natürlich auch offen. CSV erschien mir zum Erweitern des Katalogs einfach eine gute Wahl zu sein.
Vielen Dank schon mal im Voraus!

vor kurzem habe ich angefangen Python zu lernen. Da ich mittlerweile das Gefühl habe die Grundlagen zu verstehen, dachte ich mir, dass ich mich mal an ein eigenes Projekt wage. Und zwar möchte ich ähnlich einer Quiz App ein Programm zum Lernen von Python schreiben, was auch dazu dienen soll, dass ich immer mal wieder die verschiedenen Inhalte von Python wiederhole.
Auf dieser Seite (https://dev.to/mindninjax/how-to-build- ... ython-10ik) habe ich eine, wie ich finde ganz gute Vorlage gefunden, wie ich so ein "Python-Lernquiz" aufbauen könnte. Nach und nach möchte die Teile des Programmes auf meine Bedürfnisse umschreiben und mir die Sprache so auch ein bisschen erarbeiten.
Zuerst möchte ich einmal eine Grundstruktur schaffen, die einige Fragen abfragt. Danach würde ich gerne einige Kategorien/Kapitel/Level erschaffen, die man irgendwann einmal über eine Score freispielen muss. So viel zur Grundidee.
Jetzt habe ich natürlich das Problem, dass ich ganz am Anfang bei der Organisation der Daten festhänge. In der Vorlage werden die Fragen und Antworten in einem Dictionary gespeichert.
Code: Alles auswählen
quiz = {
1 : {
"question" : "What is the first name of Iron Man?",
"answer" : "Tony"
},
2 : {
"question" : "Who is called the god of lightning in Avengers?",
"answer" : "Thor"
},
3 : {
"question" : "Who carries a shield of American flag theme in Avengers?",
"answer" : "Captain America"
},
4 : {
"question" : "Which avenger is green in color?",
"answer" : "Hulk"
},
5 : {
"question" : "Which avenger can change it's size?",
"answer" : "AntMan"
},
6 : {
"question" : "Which Avenger is red in color and has mind stone?",
"answer" : "Vision"
}
}
Code: Alles auswählen
level,ID,question,answer
level01,1,question1,answer1
level01,2,question2,answer2
level01,3,question3,answer3
level01,4,question4,answer4
level01,5,question5,answer5
level02,1,Frage1,Antwort1
level02,2,Frage2,Antwort2
level02,3,Frage3,Antwort3
level02,4,Frage4,Antwort4
level02,5,Frage5,Antwort5
Code: Alles auswählen
from csv import DictReader
file_handle = open("questionstest.csv",'r')
csv_reader = DictReader(file_handle)
quiz = {}
for row in csv_reader:
print(row)
Code: Alles auswählen
{'level': 'level01', 'ID': '1', 'question': 'question1', 'answer': 'answer1'}
{'level': 'level01', 'ID': '2', 'question': 'question2', 'answer': 'answer2'}
{'level': 'level01', 'ID': '3', 'question': 'question3', 'answer': 'answer3'}
{'level': 'level01', 'ID': '4', 'question': 'question4', 'answer': 'answer4'}
{'level': 'level01', 'ID': '5', 'question': 'question5', 'answer': 'answer5'}
{'level': 'level02', 'ID': '1', 'question': 'Frage1', 'answer': 'Antwort1'}
{'level': 'level02', 'ID': '2', 'question': 'Frage2', 'answer': 'Antwort2'}
{'level': 'level02', 'ID': '3', 'question': 'Frage3', 'answer': 'Antwort3'}
{'level': 'level02', 'ID': '4', 'question': 'Frage4', 'answer': 'Antwort4'}
{'level': 'level02', 'ID': '5', 'question': 'Frage5', 'answer': 'Antwort5'}
Vielen Dank schon mal im Voraus!