Ich versuche, einige Zeichenfolgen aus einem Array von Zeichenfolgen mithilfe der Zeichenfolgenformatierung einzufügen.Python-String-Formatierung: Problem mit einfachen Anführungszeichen
Aber aus irgendeinem Grund füllt Python das erste% s mit der gewünschten Zeichenfolge, aber umgeben von einfachen Anführungszeichen.
Gibt es eine explizite Möglichkeit, dieses Verhalten zu verhindern?
Beispiel:
myString = [['000b',
'1',
'Text1',
'1.74',
'Text2',
'None'],
['000b',
'1',
'TextA',
'12.92',
'TextB',
'None']]
Wenn ich laufen die folgenden:
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)])
das erwartete Verhalten ist, dass der Tabellenname wird schema.myTable_000b_name
aber Python schreibt schema.myTable_'000b'_name
die natürlicherweise das SQL vom Laufen verhindert. Wie kann ich angeben, dass die einfachen Anführungszeichen nicht eingefügt werden sollen?
Hey, kleine Bobby Tables genannt, wollte deine Datenbank zurück: 'opts = {'table': 'harmlos_tabelle', 'value': '10; DROP DATABASE PROD; '} '. Außerdem stammt Ihr Dictionary-Literal von JavaScript, nicht von Python. – 9000
Danke für den Javascript-Hinweis, war nicht so scharf. Die Formatierung ist intern nicht immer ein Problem (schließlich heißt sie my_array und nicht your_array) und ist in fast jeder Formatierungsweise gleichermaßen gültig;) – Roelant