2016-09-21 19 views
0

Webサイトのjsonにデータを照会してから、そのデータを変数に保存してsqliteテーブルに入れることができます。私は何をしようとしているのか3のうち2つですが、sqliteの面は謎です。私はそこからデータを要求することができますが、プリントでテストすると変数にデータがあることを確認できますが、sqliteのすべてが失敗しています。それはテーブルを作成することさえありません。テーブルを更新するのはずっと少ないですが(何らかの理由ですべての結果をバッファに出力しています)私がここで間違っているのは何ですか?免責事項:Pythonのnoobのビット。私は正常に私は、Windowsの64ビットと、これを行うためにpycharmを使用してよpython sqlite docpythonの変数データをsqliteテーブルに保存しないでください

# this is requesting the data and seems to work 
for ticket in zenpy.search("bananas"): 
id = ticket.id 
subj = ticket.subject 
created = ticket.created_at 
for comment in zenpy.tickets.comments(ticket.id): 
    body = comment.body 

# connecting to sqlite db that exists. things seem to go awry here 
conn = sqlite3.connect('example.db') 
c = conn.cursor() 

# Creating the table table (for some reason table is not being created at all) 
c.execute('''CREATE TABLE tickets_test 
     (ticket id, ticket subject, creation date, body text)''') 

# Inserting the variables into the sqlite table 
c.execute("INSERT INTO ticketstest VALUES (id, subj, created, body)") 

# committing changes the changes and closing 
c.commit() 
c.close() 

のオフだけのものをコピーし、テストテーブルを作成しました。

答えて

0

まだコミットしていないためにテーブルが作成されない可能性があります.SQLはコミットする前に失敗します。 2番目のSQL文を修正するとうまくいくはずです。

作成した変数はテーブルに挿入していません。パラメータを使用する必要があります。 two ways of parameterizing your sql statementがあります。名前を付けたプレースホルダの1つを表示します:

c.execute("INSERT INTO ticketstest VALUES (:id, :subj, :created, :body)", 
    {'id':id, 'subj':subj, 'created':created, 'body':body} 
) 
関連する問題