SQL挿入ステートメントをキーと値のペアに分割します

ap0

次のステートメントを文字列として指定します

stmt = "insert into table (col1, col2, col3) values (100, '() string with parantheses ()', 2.3);"

["(col1, col2, col3)", "(100, '() string with parantheses ()', 2.3)"]後で列の名前と値を辞書に入力できるように、その文字列をリストに分割するための正規表現(または、より適切なものがある場合は他の方法)を見つけようとしています。

d = { "col1" : "100", "col2" : "'() string with parantheses ()'", "col3" : "2.3" }

これまでのところ、私は好きではない次の解決策があります(または、同じことをするためだけに正規表現を使用する解決策があると信じています)。

re.findall("\([^\r\n]*\)", stmt)[0].split("values")
# from here on I would have to parse the two strings and fill a dict

'values'正規表現のみを使用して文字列を分割する必要がない解決策を見つけることができません私の主な問題は、値がある2番目の括弧文字列に文字列に括弧が含まれている可能性があることです。

ジョンクレメンツ

ステートメントが常に同じ形式である場合は、いくつかの基本的な文字列操作を使用しast.literal_evalて値を評価できます...これもint、str、floatのタイプの値になることに注意してください。

import ast
import csv

stmt = "insert into table (col1, col2, col3) values (100, '() string with parantheses ()', 2.3);"
pre, values = stmt.rstrip(';').partition(' values ')[::2]
cols = pre.partition('(')[2]
d = dict(zip(cols.rstrip(')').split(', '), ast.literal_eval(values)))

これはあなたに与えるでしょう:

{'col1': 100, 'col2': '() string with parantheses ()', 'col3': 2.3}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

PDOプリペアドステートメントを使用してMySQLにBIT値を挿入します

分類Dev

変数の値をifステートメントのキー挿入として使用できますか?

分類Dev

単一のSQLステートメントにリストから値を挿入します

分類Dev

最後に挿入されたプリペアドステートメントのIDを取得します

分類Dev

プリペアドステートメントを使用してテーブルに挿入します

分類Dev

ドロップダウンリストを使用して主キーテーブルの値を外部キーテーブルに挿入する方法SQLサーバーとC#を使用してアイテムを選択します

分類Dev

複数のテーブルから値を選択して単一のテーブルに挿入するプリペアドステートメント

分類Dev

ストアドプロシージャのプレーンテキストとしてSQLクエリに文字列を挿入します

分類Dev

プリペアドステートメントはfalseを返しますが、正常に挿入されます

分類Dev

mysqliプリペアドステートメントを使用してデータベースの複数の列にデータを挿入します

分類Dev

一部の列を別のテーブルにコピーし、同じSQLステートメントに新しい値を挿入しますか?

分類Dev

Entity Frameworkのシードにより、挿入ステートメントが外部キーと競合します

分類Dev

プリペアドステートメントで最後に挿入されたIDを取得します

分類Dev

更新と挿入のステートメントをマージします

分類Dev

プリペアドステートメントPHPを使用して、月の日をデータベースに挿入します

分類Dev

PHPとMYSQL「:」を次の列に分割する値テキストを挿入します(例:name:email:type)

分類Dev

SQLステートメントをSQLServer列に挿入します

分類Dev

SQLステートメントに変数を挿入します

分類Dev

メール本文phpにテキストを挿入します

分類Dev

テキストのフォーマット-コメント行の前に改行を挿入します

分類Dev

テーブルと列にコメントを挿入するスクリプトSQLを生成します

分類Dev

postgresqlにステートメントを挿入します

分類Dev

ado.netのテーブル値パラメーターに複数の値の1つの挿入ステートメントを入力しますか?

分類Dev

キーと値のペアをC#の既存のJSONに挿入します

分類Dev

最後に挿入された値とifステートメントmssqlを取得します

分類Dev

1つのステートメントでdictの特定の場所にアイテムを挿入します

分類Dev

1つのSQLステートメントに複数行のデータを挿入します

分類Dev

特定のWooCommerceメールテンプレートのテキスト文字列に動的な値を挿入します

分類Dev

スクリプトのIfステートメントにLastRow関数とテキストを挿入する方法

Related 関連記事

  1. 1

    PDOプリペアドステートメントを使用してMySQLにBIT値を挿入します

  2. 2

    変数の値をifステートメントのキー挿入として使用できますか?

  3. 3

    単一のSQLステートメントにリストから値を挿入します

  4. 4

    最後に挿入されたプリペアドステートメントのIDを取得します

  5. 5

    プリペアドステートメントを使用してテーブルに挿入します

  6. 6

    ドロップダウンリストを使用して主キーテーブルの値を外部キーテーブルに挿入する方法SQLサーバーとC#を使用してアイテムを選択します

  7. 7

    複数のテーブルから値を選択して単一のテーブルに挿入するプリペアドステートメント

  8. 8

    ストアドプロシージャのプレーンテキストとしてSQLクエリに文字列を挿入します

  9. 9

    プリペアドステートメントはfalseを返しますが、正常に挿入されます

  10. 10

    mysqliプリペアドステートメントを使用してデータベースの複数の列にデータを挿入します

  11. 11

    一部の列を別のテーブルにコピーし、同じSQLステートメントに新しい値を挿入しますか?

  12. 12

    Entity Frameworkのシードにより、挿入ステートメントが外部キーと競合します

  13. 13

    プリペアドステートメントで最後に挿入されたIDを取得します

  14. 14

    更新と挿入のステートメントをマージします

  15. 15

    プリペアドステートメントPHPを使用して、月の日をデータベースに挿入します

  16. 16

    PHPとMYSQL「:」を次の列に分割する値テキストを挿入します(例:name:email:type)

  17. 17

    SQLステートメントをSQLServer列に挿入します

  18. 18

    SQLステートメントに変数を挿入します

  19. 19

    メール本文phpにテキストを挿入します

  20. 20

    テキストのフォーマット-コメント行の前に改行を挿入します

  21. 21

    テーブルと列にコメントを挿入するスクリプトSQLを生成します

  22. 22

    postgresqlにステートメントを挿入します

  23. 23

    ado.netのテーブル値パラメーターに複数の値の1つの挿入ステートメントを入力しますか?

  24. 24

    キーと値のペアをC#の既存のJSONに挿入します

  25. 25

    最後に挿入された値とifステートメントmssqlを取得します

  26. 26

    1つのステートメントでdictの特定の場所にアイテムを挿入します

  27. 27

    1つのSQLステートメントに複数行のデータを挿入します

  28. 28

    特定のWooCommerceメールテンプレートのテキスト文字列に動的な値を挿入します

  29. 29

    スクリプトのIfステートメントにLastRow関数とテキストを挿入する方法

ホットタグ

アーカイブ