- ベストアンサー
Python2.5でSQLite3のデータベースを読み込む方法
- Python2.5を使用してSQLite3のデータベースを読み込む方法を解説します。
- Python2.5を使ってSQLite3のデータベースを読み込む際に発生するエラーについての解決策を提供します。
- Python2.5のコードを使用してSQLite3のデータベースを読み込むための正しい書き方を説明します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
さっきのコードの訂正です。インデントする箇所が一箇所抜けておりました。 import sqlite3 con = sqlite3.connect("hogedb") cur = con.cursor() try: ____cur.execute("""create table hoge (name text, age text)""") ____cur.execute("""insert into hoge(name,age) values ('YAMADA', '18')""") ____cur.execute("""insert into hoge(name,age) values ('NAKAMURA', '17')""") except: ____pass con.commit() cur.execute("""select * from hoge""") print cur.fetchall() raw_input()
その他の回答 (2)
- copymaster
- ベストアンサー率81% (83/102)
CREATEしただけで、何もINSERTしていないのですから、 中身は空っぽの状態なので、print cur.fetchall()で 空のリストが返されるのは当然です。 cur.execute("""create table hoge (name text, age text)""") でエラーがでるのは、2回目に実行した場合だと思います。 (すでにテーブルが存在するのでエラーになる) これは、if文で確認して処理を分けるなどの対応が必要です。 以下は、それを踏まえたコードです。 ____ の部分は、半角スペース4つに読み替えてください。 import sqlite3 con = sqlite3.connect("hogedb") cur = con.cursor() try: ____cur.execute("""create table hoge (name text, age text)""") ____cur.execute("""insert into hoge(name,age) values ('YAMADA', '18')""") cur.execute("""insert into hoge(name,age) values ('NAKAMURA', '17')""") except: ____pass con.commit() cur.execute("""select * from hoge""") print cur.fetchall() raw_input()
- suzukikun
- ベストアンサー率28% (372/1325)
>cur.execute("""create table テーブル名(name text,age text)""") が cur.executescript("""create table テーブル名(name text,age text)""") じゃないでしょうか?
補足
有難うございます。エラーがなくなりました。しかし、print cur.fetchall()をすると[ ]と表示され、中身が表示されないのですが、原因が分かりますでしょうか?何度もすいませんが宜しくお願いします。
お礼
有難うございました。とても参考になりました