問題タブ [pysqlite]
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.
python - pysqlite2.6.3で更新ステートメントが成功したかどうかを確認する方法
私はSQLiteデータベースと通信するために使用していますが、 SQLステートメントが実際にテーブル内の何かを正常に更新したpysqlite
かどうかを確認する正しい方法は何でしょうか。UPDATE
実行後にすぐに確認できる変数はありますpysqlite
か?
python - あるデータベースから別のデータベースへのPython sqliteコピーテーブル
Windows XPで組み込みのsqlite3モジュールを備えたpython 2.7を使用しています。コードは次のようになります。
ソースデータベースでこれを実行するとdb_copy.py src.db dest.db
、2 倍になりました。そのため、ソース ファイルの属性を読み取り専用に設定しました。私は今得ます:
ソースと宛先のデータベース接続が混在しているようです。原因を見つけることなく、これを何時間もデバッグしてきました。
python - CSV から pysqlite への一定量の列
Windows 8でPython 2.6(32ビット)を使用しています。目的は、最初の行が列名であるカンマ区切りのCSVファイルからpysqliteデータベースを構築することです。
次のような私のコード(一部のコードはスキップされました):
もともと AddEntries() を使用して、CSV ファイルからデータベースにエントリを追加していました。ただし、Excel 2003 で生成された CSV ファイルの場合、各行の「フィールド」の量が異なる場合があります。一部の行には、末尾の空の列または余分なガベージが含まれている場合、「列名」行よりも多くのまたは少ないフィールドが含まれる場合があります (余分なまたは不足しているコンマ)。
最初に CSV を読み取って定義する必要があるため、「field_size_limit」は使用できません。
次の目的のいずれかを達成するためのより簡単な方法はありますか?
1. CSV ファイルを読み取るときに、一定量の列を指定して、コンマを自動的に挿入または削除しますか?
2. mysqlite データベースにエントリを挿入するとき、一定量の列を指定して、可変量の入力列を受け入れることができるようにしますか?
前もって感謝します。
python - pysqliteのrow_pop()関数?
テーブルから 1 行を取得し、同じ行を削除する必要があります。
どの行でも構いません。関数は一般的なものにする必要があるため、列名は不明であり、識別子はありません。(行全体は一意であると見なすことができます。)
結果として得られる関数は、スタックの pop() 関数に似ていますが、要素の順序は重要ではありません。
可能な解決策:
- 一時テーブルに削除します。
(これは pysqlite で実行できますか?) Get *
制限として 1 を使用し、制限Delete *
として 1 を使用します。
(ユーザーが 1 人だけの場合、これは安全ですか?)WHERE
1 行を取得してから、行全体を比較する句で削除します。
(これは pysqlite で実行できますか?)
提案?
django - pysqlite DatabaseError: text_factory を使用しない限り、8 ビットのバイト文字列を使用しないでください
csv ファイルから読み取っているドキュメント文字列を、(children's) のような文字を持つ sqlite データベースに挿入しようとしています。次のエラーがスローされます。
DatabaseError: 8 ビットのバイト文字列を解釈できる text_factory (text_factory = str など) を使用しない限り、8 ビットのバイト文字列を使用しないでください。代わりに、アプリケーションを Unicode 文字列に切り替えることを強くお勧めします。
ドキュメントを挿入する前に、文字列を unistring に変換していることを確認します。
unicode('子供向け', 'ユニコードエスケープ')
Django ORM を使用してデータを保存しています。これを取り除くために私にできることはありますか?
python - JSON から python 経由で sqlite: REPLACE INTO が同一の行を認識しない
URL/JSON からデータを取得し、デコードして、JSON の要素を sqlite テーブルに送信しています。
JSON を 1 分おきにプルするので、同じ JSON (まだ更新されていない) をプルすることがあります。ただし、テーブルに同じデータを複数回入力したくありません。この問題の解決策は役に立ちます。
私の考えは、SQLite に渡されるフィールドの 1 つとして JSON の「実行時間」要素を単純に含めることでした。したがって、INSERT の代わりに REPLACE を使用すると、JSON に新しいタイムスタンプがある場合にのみ、既存の SQL テーブルに新しい行が挿入されます。これが私が意味することです:
ただし、これは重複行の入力を防止するものではありません。スクリプトが実行されるたびに、新しい (重複していても) エントリがテーブルに挿入されます。
考え?他の解決策?よろしくお願いします。
python - 可変数の WHERE 句を使用して任意の数のキーワードに一致させる pysqlite
私はpysqliteを使用して、キーワードのデータベースと各キーワードに対応する一連のURLを構築および検索しています。データベースを検索するための私の戦略は、SQL ステートメントに 1 つの WHERE 句しか必要ないため、1 つのキーワードでうまく機能します。何かのようなもの:
ただし、任意の数のキーワードをデータベースに一致させたいと考えています。これは、複数の WHERE 句とそれらの間に OR ステートメントを使用することと同等であると考えています。与えられるキーワードの数がわからないので、特定の数の WHERE 句を想定して、API の置換機能を使用してそれらを埋めることはできません。
Python の文字列挿入操作を使用して、見つけたキーワードごとに WHERE ステートメントを OR ステートメントでマングルできると思います。ただし、インジェクション攻撃の脆弱性につながる可能性があるため、これは非常にハックであると確信しています。
.executemany() 関数の使用も検討しましたが、必要なすべての WHERE 句を含むものではなく、多くの個別の選択を実行することになります。
文字列置換で述べた方法よりも良い方法はありますか? 私はSQLに非常に慣れていないので、私と私の無知をご容赦ください。ありがとう。