Я разбираю файл журнала, который находится в json формате, и содержит данные в виде пары ключ: значение.как разбирать json, где ключ является переменной в python?
Я застрял в месте, где ключ сам по себе является переменным. пожалуйста, смотрите на прилагаемом коде
в этом коде я могу получить доступ к разделам, как имя пользователя, event_type, IP и т.д.
проблема для меня, чтобы получить доступ к значениям внутри ключа «представления», где
i4x-IITB-CS101-проблемно-33e4aac93dc84f368c93b1d08fa984fc_2_1 является переменной ключ, который будет изменяться для разных пользователей,
, как я могу получить доступ к нему в качестве переменной?
{
"username": "batista",
"event_type": "problem_check",
"ip": "127.0.0.1",
"event": {
"submission": {
"i4x-IITB-CS101-problem-33e4aac93dc84f368c93b1d08fa984fc_2_1": {
"input_type": "choicegroup",
"question": "",
"response_type": "multiplechoiceresponse",
"answer": "MenuInflater.inflate()",
"variant": "",
"correct": true
}
},
"success": "correct",
"grade": 1,
"correct_map": {
"i4x-IITB-CS101-problem-33e4aac93dc84f368c93b1d08fa984fc_2_1": {
"hint": "",
"hintmode": null,
"correctness": "correct",
"npoints": null,
"msg": "",
"queuestate": null
}
}
это мой код, как я ее решения:
import json
import pprint
with open("log.log") as infile:
# Loop until we have parsed all the lines.
for line in infile:
# Read lines until we find a complete object
while (True):
try:
json_data = json.loads(line)
username = json_data['username']
print "username :- " + username
except ValueError:
line += next(infile)
, как я могу получить доступ к i4x-IITB-CS101-проблемно-33e4aac93dc84f368c93b1d08fa984fc_2_1 ключ и
данных внутри этого ключа? ?
спасибо за ответ farzad Я добавил свой код, пожалуйста, проверьте его, как я могу подстроить ваш код там? – rajsinghaniaful
Этот пример кода выше будет работать для проблемы, упомянутой в вопросе. Переменная «its_value» является ответом на вашу проблему.это словарь, который имеет ключи «подсказка», «hintmode», ... Однако я не думаю, что способ чтения строк в файле журнала правильный. Нет необходимости в _while True_ и _next (infile) _. цикл _for_ будет читать все строки файла и попытаться проанализировать содержимое JSON каждой строки. – farzad