2017-12-23 5 views
1

Wie kann ich unerwünschte Zeichen aus einem langen Text mit .replace() oder einer anderen Art entfernen? Symbole, die ich aus dem Text rausschmeißen möchte, sind ',',{,},[,] (Kommas sind nicht enthalten). Mein bisheriger Text ist:Unerwünschte Zeichen können nicht aus einer langen Zeichenfolge entfernt werden.

{'SearchText':'319 lizzie','ResultList':[{'PropertyQuickRefID':'R016698','PropertyType':'Real'}],'TaxYear':2018} 

ich mit dem folgenden Code versucht:

content=''' 
{'SearchText':'319 lizzie','ResultList':[{'PropertyQuickRefID':'R016698','PropertyType':'Real'}],'TaxYear':2018} 
''' 
print(content.replace("'","")) 

Output Ich habe: [btw, wenn ich wie .replace weitermachen() ersetzen() mit verschiedenen Symbolen in. es dann funktioniert es, aber ich mag das gleiche in einer einzigen Instanz, wenn sein möglichen] tun will

{SearchText:319 lizzie,ResultList:[{PropertyQuickRefID:R016698,PropertyType:Real}],TaxYear:2018} 

I i Funktion wie .replace("',{,},[,]","") ersetzen nutzen könnte. Allerdings bin ich nicht nach einer Lösung von regex abgeleitet. String Manipulation ist, was ich erwartet habe. Danke im Voraus.

+0

Haben Sie überlegt, Regex zu verwenden? –

+0

Danke Mad Physicist für Ihren Kommentar. Eigentlich hatte ich keine Lösung aus Regex. – SIM

Antwort

4
content=r"{'SearchText':'319 lizzie','ResultList':[{'PropertyQuickRefID':'R016698','PropertyType':'Real'}],'TaxYear':2018}" 

igno = "{}[]''´´``''" 
cleaned = ''.join([x for x in content if x not in igno]) 

print(cleaned) 

PyFiddle 3.6:

SearchText:319 lizzie,ResultList:PropertyQuickRefID:R016698,PropertyType:Real,TaxYear:2018 

In 2.7 Ich erhalte eine Fehlermeldung:

Non-ASCII character '\xc2' in file main.py on line 3, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

Wich können durch Zugabe von # This Python file uses the following encoding: utf-8 als erster Zeile im Quellcode festgelegt werden - das ergibt dann identischen Ausgang .

+0

Ja, es macht den Trick. Übrigens, ist es nicht möglich, dasselbe mit der Funktion '.replace()' mit mehreren Zeichen zu tun? Ich werde es bald annehmen. – SIM

+0

@topto Sie können auch string.transform verwenden - siehe https://Stackoverflow.com/a/3939381/7505395, aber mit Unicode scheint es ein Pita zu sein - also würde ich bleiben, Verständnis auflisten: 'für einen Mann mit einem Hammer , alle Probleme neigen dazu, wie Nägel aussehen ";) –

Verwandte Themen