Как работать с SQL-запросами при работе с синтаксическим анализатором - PullRequest
0 голосов
/ 25 марта 2019

На самом деле я хотел написать некоторый код Python для выброса данных в мою базу данных SQL, поэтому для этого я написал пример скрипта Python, чтобы просто проверить, работает ли он.Запрос не работает и ничего не происходит.Я знаю, что должно быть что-то, чего мне не хватает.

import pyodbc
import xml.sax

class Parser(xml.sax.ContentHandler):

    def __init__(self):
        self.current_tag = ""
        self.title = ""
        self.type = ""
        self.format = ""
        self.year = ""
        self.rating = ""
        self.stars = ""
        self.description = ""

    def startElement(self, tag, attribute):
        self.current_tag = tag
             if tag == "movie":
        self.title = attribute['title']

    def endElement(self, tag):
             if tag == 'movie':
                conn = pyodbc.connect('Driver={SQL Server};'
                              'Server=localhost;'
                              'Database=Datawarehouse_project;'
                              'Trusted_Connection=yes;')
             cursor = conn.cursor()
             cursor.execute('insert into Movies values (?,?,?,?,?,?,?)', (self.title, self.type, self.format, self.year,
                                                                     self.rating, self.stars, self.description))

    def characters(self, content):
         if self.current_tag == "type":
             self.type = content
    elif self.current_tag == "format":
        self.format = content
    elif self.current_tag == "year":
        self.year = content
    elif self.current_tag == "rating":
        self.rating = content
    elif self.current_tag == "stars":
        self.stars = content
    elif self.current_tag == "description":
        self.description = content

if __name__ == '__main__':
    parser = xml.sax.make_parser()
    handler = Parser()
    parser.setContentHandler(handler)
    parser.parse('movies.xml')

Код работает и ничего не делает.Я ожидаю, что этот код просто извлечет данные из файла XML 'movies.xml' и выбросит данные в таблицу. Movies в моей базе данных 'Datawarehouse_project'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...