1

YouTube API からローカルの MySQL テーブルにデータを取得しようとしています。以下のスクリプトにたどり着くまで、一連のデバッグを行いましたが、このスクリプトからエラーが発生しないため、少し迷っています。どこから始めればよいか提案はありますか?

#!/usr/bin/python
# -- coding: utf-8 --

import MySQLdb
import os
import requests
import json
import sys
import re
import requests
import datetime

sql_conn = MySQLdb.connect(host="localhost", user="root", passwd="PSWD", db="researchyoutube")
sql_conn.autocommit(True)
sql_db = sql_conn.cursor(MySQLdb.cursors.DictCursor)

resp = requests.get("https://gdata.youtube.com/feeds/api/videos?q=kitten&orderby=published&start-index=11&max-results=50&v=2&alt=jsonc")

if(resp.status_code == 200):
    data = json.loads(resp.content) 
    for item in data['data']['items']:

        title = item['title']
        uploaded_on = item['uploaded']
        description = item['description']
        video_length = item['duration']
        user = item['uploader']
        video_id = item['id']
        video_url = item['player']['default']

        sql = "INSERT IGNORE into NCII (title, uploaded_on, description, video_length, user, video_id, video_url) VALUES (title, uploaded_on, description, video_length, user, video_id, video_url)"

        sql_db.execute(sql)
4

1 に答える 1

1

リストには、適切なプレースホルダーVALUES()ではなく変数名が含まれているようです%s

sql = "INSERT IGNORE into NCII (title, uploaded_on, description, video_length, user, video_id, video_url) VALUES (%s, %s, %s, %s, %s, %s, %s)"

# execute with the vars in a tuple
sql_db.execute(sql, (title, uploaded_on, description, video_length, user, video_id, video_url))
于 2012-06-14T00:23:09.527 に答える