Domanda

Ho citato errore di s1="some very long string............"

Qualcuno sa che cosa sto facendo male?

È stato utile?

Soluzione

Non stanno mettendo un " prima della fine della linea.

Usa """ se si vuole fare questo:

""" a very long string ...... 
....that can span multiple lines
"""

Altri suggerimenti

ho avuto questo problema - alla fine ho lavorato fuori che il motivo era che avevo personaggi \ inclusi nella stringa. Se avete uno di questi, "fuga" di loro con \\ e dovrebbe funzionare bene.

(ammesso che non si dispone di / vogliono interruzioni di riga nella stringa ...)

Quanto tempo è questa stringa davvero?

Ho il sospetto che ci sia un limite a quanto tempo una linea di lettura da un file o da linea di comando può essere, e perché la fine della linea viene choped fuori il parser vede qualcosa di simile s1="some very long string.......... (senza " finale) e lancia quindi un errore di analisi?

È possibile dividere le linee lunghe fino a più righe fuggendo interruzione di linea nella vostra fonte in questo modo:

s1="some very long string.....\
...\
...."

Nella mia situazione, ho avuto \r\n nelle mie corde dizionario singoli apici. Ho sostituito tutte le istanze di \r con \\r e \n con \\n e risolto il mio problema, correttamente tornando interruzioni di riga sfuggiti nel dict eval'ed.

ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n'))
  .....

Anche io avuto questo problema, anche se c'erano risposte qui voglio un importante punto a questo dopo / non ci dovrebbe essere vuoto spaces.Be consapevoli

Ho affrontato un problema simile. Ho avuto una stringa che conteneva percorso di una cartella in Windows per esempio C:\Users\ Il problema è che \ è un carattere di escape e quindi al fine di utilizzarlo nelle stringhe è necessario aggiungere un altro \.

non corretto: C:\Users\

Corretto: C:\\\Users\\\

Ho anche avuto questo messaggio di errore esatto, per me il problema è stato risolto con l'aggiunta di un "\"

Si scopre che la mia lunga stringa, suddivisi in circa otto linee con "\" alla fine molto, mancava un "\" su una riga.

Python IDLE non ha specificato un numero di riga che questo errore era accesa, ma evidenziati in rosso maniera del tutto corretta istruzione di assegnazione variabile, mi ha gettato via. L'attuale deforme istruzione stringa (più righe lunghe con "\") era adiacente alla dichiarazione di essere evidenziato. Forse questo aiuterà qualcun altro.

Nel mio caso, ho utilizzare Windows quindi devo usare le virgolette al posto del singolo.

C:\Users\Dr. Printer>python -mtimeit -s"a = 0"
100000000 loops, best of 3: 0.011 usec per loop

mi è stato sempre questo errore nella funzione PostgreSQL. Ho avuto una lunga SQL, che ho rotto in più righe con \ per una migliore leggibilità. Tuttavia, questo era il problema. Ho rimosso tutto e li ha fatti in una linea per risolvere il problema. Stavo usando pgAdmin III.

Nel mio caso con Mac OS X, ho avuto la seguente dichiarazione:

model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)

stavo ottenendo l'errore:

  File "<stdin>", line 1
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)
                                                                             ^
SyntaxError: EOL while scanning string literal

Dopo essere passato a:

model.export_srcpkg(platform, toolchain, "mymodel_pkg.zip", "mymodel.dylib")

Ha funzionato ...

David

Il tuo variable(s1) si estende su più righe. Per fare questo (cioè si desidera che la stringa da estendersi su più righe), è necessario utilizzare le virgolette triple ( "" ").

s1="""some very long 
string............"""
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top