2015-05-30 2 views
0

Я пытаюсь написать программу, которая позволяет пользователю вводить вопросы и ответы для викторины с несколькими вариантами выбора. Вопросы и ответы должны быть записаны в файл в формате json.Преобразование строк Python в Json

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

Кодекс У меня до сих пор:

def addToList(filename, data): 
question = input('Add Question: ') # prompt user to type what to add 
correct = input('Add Correct Answer: ') 
wrong1 = input('Add 1st Incorrect Answer: ') 
wrong2 = input('Add 2nd Incorrect Answer: ') 
wrong3 = input('Add 3rd Incorrect Answer: ') 
question = question + '\n'  # add a line break to the end 

correct = 'correct: ' + correct 
wrong1 = 'wrong1: ' + wrong1 
wrong2 = 'wrong2: ' + wrong2 
wrong3 = 'wrong3: ' + wrong3 



data.append(question)  # append the question 
data.append(correct) 
data.append(wrong1) 
data.append(wrong2) 
data.append(wrong3) 


f = open(filename, 'a') # open the file in append mode 
f.write(question)   # add the new item to the end of the file 
f.write(correct) 
f.write(wrong1) 
f.write(wrong2) 
f.write(wrong3) 

f.close() 

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

+0

Используйте библиотеку как jsonpickle https://jsonpickle.github.io/ – MatthewMartin

ответ

4

Сначала вы строите dictionary, а затем преобразуете его в JSON.

Как это:

import json 
# (...) 
correct = 'correct: ' + correct 
wrong1 = 'wrong1: ' + wrong1 
wrong2 = 'wrong2: ' + wrong2 
wrong3 = 'wrong3: ' + wrong3 

dic = {'correct': correct, 'wrong1': wrong1, 'wrong2': wrong2, 'wrong3': wrong3} 
json_str = json.dumps(dic) 
Смежные вопросы