医師国家試験をデータベース化する(3)

解答をデータベース化します。

pdf を読み込む

第117回の解答は以下のような pdf です。

「正答2」と「正答3」はすべて空欄です。
「正答1」にも空欄がいくつかあります。

したがって問題番号と正答1だけを読み込みます。


import tabula
    def extract_answer( self ):
        tables = tabula.read_pdf( self.pdf, pages="all", multiple_tables=True )
        self.answer_list = [[row[0], row[1]] for table in tables for row in table.values.tolist()]

list をデータベースに書き込む

list に記録されたデータをデータベースに書き込みます。


    def insertDB(self):
        connection = mysql.connector.connect(
            host="localhost",
            user=self.username,
            password=self.password,
            database=self.mysqldb
        )
        cursor = connection.cursor()
        insert_query = "INSERT INTO 117A_a (qnum, answer) VALUES (%s, %s)"
        cursor.executemany(insert_query, self.answer_list)
        connection.commit()
        cursor.close()
        connection.close()

解答はとてもシンプルなのでデータベース化は簡単です。