로그 파일을 구문 분석하려고합니다. 아래 주어진 구조와 같습니다. 파이썬으로 처리하고 데이터베이스에 추출 된 데이터를 저장하고 싶습니다. 어떻게해야합니까?python을 사용하여 로그 파일을 구문 분석하고 데이터를 데이터베이스에 저장하는 방법은 무엇입니까?
간단한 키 값 쌍을 구문 분석 할 수 있지만 문제가 있습니다.
1 : 어떻게하면 중첩 된 구조를 구문 분석 할 수 있습니까? 예를 들어 샘플 파일의 컨텍스트 필드가 기본 그룹에 중첩되어 있습니까?
2 : 구분 기호가 문자열 인 경우 조건을 처리하는 방법. key : value 쌍 구분 기호는 콜론 (:)이며 "site"키에는 키가 있습니다. 값 쌍 site_url : http://something.com 여기 url에는 잘못된 대답을 제공하는 콜론 (:)도 포함됩니다.
{
"username": "lavania",
"host": "10.105.22.32",
"event_source": "server",
"event_type": "/courses/XYZ/CS101/2014_T1/xblock
/i4x:;_;_XYZ;_CS101;_video;_d333fa637a074b41996dc2fd5e675818/handler/xmodule_handler/save_user_state",
"context": {
"course_id": "XYZ/CS101/2014_T1",
"course_user_tags": {},
"user_id": 42,
"org_id": "XYZ"
},
"time": "2014-06-20T05:49:10.468638+00:00",
"site":"http://something.com",
"ip": "127.0.0.1",
"event": "{\"POST\": {\"saved_video_position\": [\"00:02:10\"]}, \"GET\": {}}",
"agent": "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:18.0) Gecko/20100101 Firefox/18.0",
"page": null
}
{
"username": "rihana",
"host": "10.105.22.32",
"event_source": "server",
"event_type": "problem_check",
"context": {
"course_id": "XYZ/CS101/2014_T1",
"course_user_tags": {},
"user_id": 40,
"org_id": "XYZ",
"module": {
"display_name": ""
}
},
"time": "2014-06-20T06:43:52.716455+00:00",
"ip": "127.0.0.1",
"event": {
"submission": {
"i4x-XYZ-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-XYZ-CS101-problem-33e4aac93dc84f368c93b1d08fa984fc_2_1": {
"hint": "",
"hintmode": null,
"correctness": "correct",
"npoints": null,
"msg": "",
"queuestate": null
}
},
"state": {
"student_answers": {},
"seed": 1,
"done": null,
"correct_map": {},
"input_state": {
"i4x-XYZ-CS101-problem-33e4aac93dc84f368c93b1d08fa984fc_2_1": {}
}
},
"answers": {
"i4x-XYZ-CS101-problem-33e4aac93dc84f368c93b1d08fa984fc_2_1": "choice_0"
},
"attempts": 1,
"max_grade": 1,
"problem_id": "i4x://XYZ/CS101/problem/33e4aac93dc84f368c93b1d08fa984fc"
},
"agent": "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:29.0) Gecko/20100101 Firefox/29.0",
"page": "x_module"
}
{
"username": "troysa",
"host": "localhost",
"event_source": "server",
"event_type": "/courses/XYZ/CS101/2014_T1/instructor_dashboard/api/list_instructor_tasks",
"context": {
"course_id": "XYZ/CS101/2014_T1",
"course_user_tags": {},
"user_id": 6,
"org_id": "XYZ"
},
"time": "2014-06-20T05:49:26.780244+00:00",
"ip": "127.0.0.1",
"event": "{\"POST\": {}, \"GET\": {}}",
"agent": "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:29.0) Gecko/20100101 Firefox/29.0",
"page": null
}
감사 마이클 어떤 생각이 우리가 어떻게 데이터베이스에이 값을 입력 할 수 있습니다 어떻게해야합니까? – rajsinghaniaful
작업 할 데이터베이스를 선택해야합니다. Mysql, Postgres, Sqlite 등 (목록은 https://wiki.python.org/moin/DatabaseInterfaces에서 찾을 수 있습니다). 데이터베이스가 선택되면이를 구성해야합니다. 일단 이것이 끝나면 다른 StackOverflow 질문에 남을 가능성이 더 높은 프로그래밍 연습입니다. MySql은 일반적인 선택이며 이미 많은 질문이 있다는 것을 알았습니다. http://stackoverflow.com/questions/372885/how-do-i-connect-to-a-mysql-database-in-python –