2016-12-05 3 views
0

Я создал 5 таблиц в workbench mysql 5.7, в которых я буду извлекать данные из запросов APIgraph для данной страницы facebook.Оператор SQL% в python возвращает ошибку

Однако, когда я запускаю код, он выдает ошибку:

ProgrammingError: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%s, %s)' at line 1

Вот часть кода, который я думаю, содержит ошибку:

#create connection to db 
connection = connect_db() 
cursor = connection.cursor() 

#SQL request for inserting the date of the page into the database 
insert_page = ("INSERT INTO page" 
       "(fb_id, name)" 
       "VALUES (%s, %s)") 

insert_posts = ("INSERT INTO posts " 
       "(page_id, fb_post_id, message, time_created)" 
       "VALUES (%s, %s, %s, %s)") 

И я, наконец, положить данные в конце кода:

cursor.execute(insert_page, json_pageiddata) 

Любые идеи? Спасибо за помощь

EDIT: вот моя json_pageiddtata переменный, полученный из запроса URL с APIgraph:

pageid_url = create_pageid_url(current_page, APP_ID, APP_SECRET) 
    json_pageiddata = render_to_json(pageid_url) 
    print json_pageiddata["name"], json_pageiddata["id"] 
+0

Вы можете пройти мимо переменной '' json_pageiddata'' –

+0

Привет, я обновил свой вопрос с вашего запроса! –

ответ

0

Если вы используете данные в виде словаря и необходимо указать имя индекса, попробуйте использовать %(name)s.

+0

Итак, я попытался заменить вывод json_pageiddtat на список со следующим статусом: page_data = [json_pageiddata ["name"], json_pageiddata ["id"]] напечатать page_data, которые теперь возвращают мне следующую ошибку: Неверное целочисленное значение: «walmart» для столбца «fb_id» в строке 1. Точно, что мое значение в mySQL для page_id - это BIGINT (64), а интересующая страница facebook представляет собой walmart –

+0

, вы должны уважать порядок данных в своем запросе так: 'fb_id, name'' - ваш список должен быть '' [json_pageiddata ["id"], json_pageiddata ["name"]] '' –

+0

Хорошо, теперь он работает. Однако у меня есть еще одна проблема! : ** Поле «idPAGE» не имеет значения по умолчанию «**. Это поле - это мой ключ автоинкремента на моей странице таблицы. Может быть, мне следует открыть другой вопрос и считать, что он разрешен. –