文字列の配列から文字列の書式設定を使用して文字列を挿入しようとしています。Python文字列書式設定:単一引用符での問題
しかし何らかの理由で、Pythonは最初の%sを目的の文字列で埋めていますが、一重引用符で囲んでいます。
この動作を防止する明確な方法はありますか?私は次のことを実行すると
myString = [['000b',
'1',
'Text1',
'1.74',
'Text2',
'None'],
['000b',
'1',
'TextA',
'12.92',
'TextB',
'None']]
:
例
cursor.executemany("INSERT INTO schema.myTable_%s_name (col1, col2, col3, col4, col5) VALUES (%s, NULLIF(%s,'None')::decimal, NULLIF(%s,'None')::decimal, %s, NULLIF(%s,'None')::int)", myString[0:len(myString)])
期待される動作は、テーブル名がschema.myTable_000b_name
になっていることですが、Pythonは自然に実行されているからSQLを防止schema.myTable_'000b'_name
を書き込みます。一重引用符を挿入しないように指定するにはどうすればよいですか?
の偉大な、非常に直感的に作成することができますねえ、と呼ばれる小さなボビーテーブルは、戻ってあなたのデータベースを望んでいた: 'optsの= {「テーブル」:「innocuous_table」、「値」:'10; DROP DATABASE PROD; '} 'また、あなたの辞書リテラルはPythonからではなく、JavaScriptからのものです。 – 9000
javascriptのおかげでありがとうございました。書式設定は内部的には必ずしも問題ではありません(my_arrayとyour_arrayと呼ばれています)し、ほとんどすべての書式設定で同様に有効です。 – Roelant