Как сделать значение в sql целой строкой? - PullRequest
0 голосов
/ 27 марта 2020

Я хочу сгенерировать оператор вставки для SQL, чтобы заполнить таблицу ключом URL-адреса со значением из dict. Мои Jsondata выглядят так:

dict_items([('date', '20122013-10-15'), ('termijn', 1), ('spreker', 'Van der Burg'), 
('rol', 'Mevrouw'), ('indegree', 2), ('aantal_interrupts', 6), ('interruptors', 
{'Thieme': 2, 'Pechtold': 4}), ('OnderwerpDebat', 'Begroting Algemene Zaken en begroting van de Koning'), 
('url', 'https://zoek.officielebekendmakingen.nl/h-tk-20122013-10-15.xml')])

for index in range(len(jsondata)):
    for key, value in jsondata[index].items():
        if key == 'url':
            columns = key
            values = value
            sql = "INSERT INTO %s ( %s ) VALUES ( %s );" % ('onderwerp', columns, values)
            print(sql)
            cursor.execute(sql)

cursor.execute("""SELECT * FROM onderwerp; """).fetchall()

Вывод оператор print выглядит следующим образом:

INSERT INTO onderwerp ( url ) VALUES ( https://zoek.officielebekendmakingen.nl/h-tk-20122013-10-15.xml );

Я хочу, чтобы вывод был:

INSERT INTO onderwerp ( url ) VALUES ( "https://zoek.officielebekendmakingen.nl/h-tk-20122013-10-15.xml" );

Всякий раз, когда я хочу выполнить выполнение, он говорит:

---------------------------------------------------------------------------
OperationalError                          Traceback (most recent call last)
<ipython-input-156-1e0bc150168a> in <module>
      9             sql = "INSERT INTO %s ( %s ) VALUES ( %s );" % ('onderwerp', key, str(value))
     10             print(sql)
---> 11             cursor.execute(sql)
     12 
     13 cursor.execute("""SELECT * FROM onderwerp; """).fetchall()

OperationalError: unrecognized token: ":"

Таким образом, это означает, что URL был сохранен не как целая строка, а как комбинация символов. Как мне добраться до этой точки?

1 Ответ

0 голосов
/ 27 марта 2020

Ок, я смог решить свою проблему. Ограничения для моей таблицы, где типом данных Url был VARCHAR (), но я не указал максимальную длину для VARCHAR, поэтому он автоматически установил ее на 1.

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