問題タブ [python-db-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
208 参照

python - Python Database API v2 > 反復中に実行されたクエリが結果を返さない場合、結果セットの反復は停止します

1 つのテーブルから多数のレコードを取得し、結果セットを反復処理し、返された行ごとに別のテーブルにクエリを実行するスクリプトで Python用のSnowflake コネクタ(Python データベース API v2 仕様のサポートを実装) を使用しています。結果が返される場合と返されない場合があります。

2 番目のクエリで結果が返されない場合、エラーがスローされなくても、最初のクエリで返された結果の繰り返しが停止します。

次のコードは、私が直面している問題を示しています...

例外がスローされた場合、エラーをキャプチャして次の結果に進むことで、このシナリオを処理できます。例外がスローされない場合、このシナリオをどのように処理しますか?

0 投票する
3 に答える
2932 参照

python - python3でnumpy整数型をsqliteに挿入する

Python 3でnumpy整数オブジェクトの値をデータベースに挿入する正しい方法は何ですか? Python 2.7 では、numpy の数値データ型が sqlite にきれいに挿入されますが、Python 3 では挿入されません。

np.float タイプは、2 と 3 の両方で問題なく動作するようです。

Python 2 では、numpy スカラー整数データ型はもはや int のインスタンスではなく、整数値の浮動小数点数を int に変換することさえあります。

これが、dbapi が numpy とシームレスに動作しなくなった理由ですか?

0 投票する
1 に答える
9390 参照

python - python DatabaseErrors を一般的にキャッチする

さまざまなデータベース エンジンに実装できるデータベース スキーマがあります (たとえば、pyodbc を使用して接続する MS Access データベースや、組み込みの sqlite3 モジュールを介して接続する SQLite データベースを考えてみましょう)。簡単な例)。

次のようなパラメータに基づいて適切なタイプのデータベース接続を返すファクトリ関数/メソッドを作成したいと思います。

これで、任意の接続タイプで動作するはずのクエリ コードがいくつかあります (スキーマは基礎となる DB エンジンに関係なく同一であるため) が、キャッチする必要がある例外をスローする可能性があります。

私が抱えている問題は、各 DB API 2.0 実装の DatabaseError クラスが共通の基本クラス (一般的すぎる例外を除く) を共有していないため、これらの例外を一般的にキャッチする方法がわからないことです。明らかに、次のようなことができます。

...ここでは、考えられるデータベース エンジンごとに明示的な catch ブロックを含めました。しかし、これは明らかにPythonicではないようです。

基礎となるさまざまな DB API 2.0 データベース実装から DatabaseErrors を一般的にキャッチするにはどうすればよいですか?

0 投票する
1 に答える
2383 参照

python - データベース接続を閉じるためにteardown_appcontextが必要なのはなぜですか?

フラスコのドキュメントによると、アプリのコンテキストが切断されたときにデータベース接続を閉じる必要があります。

しかし、アプリ コンテキストを破棄すると、データベース接続への (唯一の) 参照が削除されませんか (g.sqlite_db消えるとg消えるように)。これにより、接続が自動的に閉じられると思いました(dbドライバーが接続を閉じるためdel)。接続を明示的に閉じることの利点は何ですか?

0 投票する
1 に答える
96 参照

python - 複数の挿入/更新でコミットするときのPython DB-Api

db の単一の行を更新する関数があります。

conn.commit()この関数を複数回 (数千回) 使用して、後で次のようにしても問題ありませんか。

または、 tocurrの代わりに渡す必要がありますか?connupdate_one_row

私は知ってcurr.executemany()いますが、明示的なループを好みます。性能差はありますか?

全体的に、カーソルの使用法といつコミットするかについてかなり迷っています。

0 投票する
2 に答える
1265 参照

python - ValueError: 操作パラメーターは str でなければなりません

Python 関数を使用していくつかのデータベース フィールドを SQLite DB に更新しようとしています。次のエラーが発生し続けます。

ValueError: 操作パラメーターは str でなければなりません

以下は私のコードです。sqlite db で複数の列を更新する方法を知りたいです。