Ho provato tutti i tipi di moduli Python ed entrambi escono troppo o nel modo sbagliato. Qual è il modo migliore che hai trovato per sfuggire le virgolette (", ') in Python?Un buon modo per evitare le virgolette in una stringa di query del database?
risposta
Se si tratta di una parte di una query di database si dovrebbe essere in grado di utilizzare un Parameterized SQL Statement.
Così come fuggire citazioni , questo si occuperà di tutti i caratteri speciali e vi proteggerà da SQL injection attacks.
+1: se stai evadendo le virgolette in una query di database, stai facendo il SQL sbagliato. –
+1> Stavo per pubblicare la stessa cosa :-) –
Eccellente, ora ho solo bisogno di una copia di Python 3.0. –
per una soluzione ad un problema più generico, ho un programma in cui avevo bisogno di memorizzare qualsiasi set di caratteri in un file flat, delimitato da tabulazione Ovviamente, avere delle schede nel 'set' stava causando problemi
Invece di output_f.write (str), ho usato output_f.write (repr (str)), che ha risolto il mio problema. È più lento leggere, dato che ho bisogno di eval() l'input quando lo leggo, ma nel complesso, rende il codice più pulito perché non ho più bisogno di controllare i casi di frange.
repr/eval è una cattiva idea in questo caso. Potresti usare invece il modulo 'csv'. Si prenderà cura delle schede di inserimento nel campo per te – jfs
Se stai usando psycopg2 che ha un metodo per archi in fuga: psycopg2.extensions.adapt()
Vedere How to quote a string value explicitly (Python DB API/Psycopg2) per la risposta completa
citazioni tripla doppia sono i migliori per sfuggire:
string = """This will span across 'single quotes', "double quotes", and literal EOLs all in the same string."""
Non funzionerà in questo caso: 'string =" "" Questa è una stringa "contenente una citazione" "" "' – dolma33
La facile e modo standard per evitare stringhe e convertire altri oggetti in forma programmatica, consiste nell'utilizzare la funzione build in repr(). Converte un oggetto nella rappresentazione di cui avresti bisogno per inserirlo con il codice manuale.
Es .:
s = "I'm happy I am \"here\" now"
print repr(s)
>> 'I\'m happy I am "here" now'
Nessun hack strano, è costruito in e semplicemente funziona per la maggior parte degli scopi.
Questo probabilmente non è ciò che l'OP vuole. repr fa sfuggire le virgolette ma avvolge anche la stringa tra virgolette singole. Ad esempio: repr ("King's Castle") diventa "King's Castle" (notare le virgolette di avvolgimento). –
Utilizzare json.dumps
.
>>> import json
>>> print json.dumps('a"bc')
"a\"bc"
Questo errore si verifica quando i caratteri Unicode sono inclusi nella stringa: 'print json.dumps (u" £ ")' stampa '" \ u00a3 "' –
Reply per thread vecchio, ma il miglior modo manca ancora qui ..
Se si utilizza psycopg2, è eseguire -Metodo è buildin fuga.
cursor.execute("SELECT column FROM table WHERE column=%s AND column2=%s", (value1, value2))
nota, che si stanno dando due argomenti per eseguire il metodo (archi e tuple), invece di utilizzare operatore di Python% di modificare stringa.
risposta rubato da qui: psycopg2 equivalent of mysqldb.escape_string?
virgolette singole triple saranno convenientemente incapsulare le virgolette singole, spesso utilizzate in query SQL:
c.execute('''SELECT sval FROM sdat WHERE instime > NOW() - INTERVAL '1 days' ORDER BY instime ASC''')
- 1. Come evitare le doppie virgolette nella stringa?
- 2. Come evitare le virgolette singole in Sybase
- 3. Uso le virgolette in una stringa AppleScript
- 4. Come includere le virgolette in una stringa
- 5. Come evitare in modo sicuro le virgolette in R per inviare il testo a SQL?
- 6. Esiste un buon modello per riutilizzare le query di Morphia?
- 7. Come evitare le virgolette attorno alias di tabella in jOOQ
- 8. Come evitare le virgolette doppie nell'attributo titolo
- 9. Come faccio a evitare le doppie virgolette negli attributi in una stringa XML in T-SQL?
- 10. Come rimuovere le virgolette da una stringa?
- 11. Come evitare correttamente le virgolette all'interno degli attributi html?
- 12. Come si incorporano le virgolette in una stringa di elisir?
- 13. Tecniche per ridurre le query del database in un'app Rails
- 14. Esiste un buon modo per eseguire il dump SQL del database MySQL in DataGrip?
- 15. È un buon modo per intercettare le chiamate di sistema?
- 16. modo per cercare nell'intero database una stringa in MySQL
- 17. php per estrarre una stringa da virgolette
- 18. C'è un buon modo per gestire le eccezioni in Python?
- 19. Il modo migliore per analizzare una stringa di query URL
- 20. C'è un modo per rimuovere le virgolette in una macro C?
- 21. Qual è un buon modo per dividere le stringhe qui?
- 22. Come sostituire le virgolette ricce in una stringa utilizzando Javascript?
- 23. Come inserire le virgolette in una stringa Java?
- 24. È necessario un buon modello di progettazione per il set di risultati della query del database di memorizzazione nella cache
- 25. buon design del database: valori enum: ints o stringhe?
- 26. Come evitare le virgolette singole per l'inserimento SQL ... quando la stringa da inserire è in una variabile generata dall'utente
- 27. Un buon modo per introdurre una stringa costante nel file di internazionalizzazione i18n nei graal
- 28. Come evitare le doppie virgolette come parametro per un NUnit TestCase?
- 29. Esiste un modo migliore per evitare l'esecuzione del processo più di una volta in Oracle?
- 30. Qual è un buon modo per gestire le chiavi in un archivio di valori-chiave?
In quale contesto si desidera che il fuggire? Per le stringhe Python o in un database? – workmad3
Fa parte di una query del database Postgres. –