string in list spalten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Kamik423
User
Beiträge: 93
Registriert: Donnerstag 28. März 2013, 16:53

hallo, ich habe einen string

Code: Alles auswählen

"['main screen', 'dummy']"
und möchte das in eine list spalten

Code: Alles auswählen

["main screen","dummy"]
mein code

Code: Alles auswählen

 a=a.replace("['","").replace("]'","").split("', '")
gibt mir

Code: Alles auswählen

['main screen', "dummy']\n"]
warm :?: :!: ? und wie löse ich es?

es scheint am split zu liegen, aber ich weiß nicht warum.

Hilfe wäre großartig!

##EDIT!
es ist eine liste! nur hängt es irgendwie /n ans ende. danke an jeden der helfen wollte

mein Code:

Code: Alles auswählen

temp=temp.replace("['","").replace("]","").replace("'","").split(", ")
temp[len(temp)-1]=temp[len(temp)-1].replace("\n","")
könnte ich das noch irgendwie vereinfachen?
Danke
0x4c65742773206d616b652073757265207468617420686973746f7279206e6576657220666f726765747320746865206e616d6520656e746572707269736521
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Code: Alles auswählen

>>> s = "['main screen', 'dummy']"
>>> s[2:-2].split("', '")
['main screen', 'dummy']
Wie kommt es eigentlich, dass dir die Daten in diesem Format vorliegen? Das sieht ja verdächtig nach Python-Code aus.

EDIT: Wenn man es wirklich ordentlich machen will:

Code: Alles auswählen

>>> import ast
>>> ast.literal_eval(s)
['main screen', 'dummy']
BlackJack

@Kamik423: Um noch mal auf die erste Frage von snafu einzugehen: Wenn der Code der diese Zeichenkette produziert hat von Dir ist, dann ändere das. Python-Code zu erzeugen und zu parsen ist keine gute Idee. So etwas wie JSON ist mit dem `json`-Modul aus der Standardbibliothek einfach zu handhaben, sicher, und dazu auch noch ein Format das mit vielen Programmiersprachen verwendet werden kann.
Kamik423
User
Beiträge: 93
Registriert: Donnerstag 28. März 2013, 16:53

Ein anderer code hat variablen als string geparst und in eine txt datei gespeichert. Der code ist aber universell, D.H. Es würde auch ints oder strings speichern.
Was sind diese json und literal eval module?
Und vielen dank schon mal
0x4c65742773206d616b652073757265207468617420686973746f7279206e6576657220666f726765747320746865206e616d6520656e746572707269736521
BlackJack

@Kamik423: Ich glaube parsen bedeutet etwas anderes als Du denkst. Nochmal: Zeichenkettendarstellungen von Python-Datentypen sind keine vernünftige Art Daten zu speichern.

Was das `json`-Modul und das `ast`-Modul sind, kannst Du in der Dokumentation nachlesen.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Kamik423 hat geschrieben:Ein anderer code hat variablen als string geparst und in eine txt datei gespeichert.
Dieser andere Code hat die Daten nicht geparst, der hat einfach die als String vorliegende Debug-Darstellung der Liste ausgegeben.
Kamik hat geschrieben:Der code ist aber universell
Ohne den Code gesehen zu haben, aber mit 30 Jahren Programmiererfahrung: Der Code ist Mist.
Antworten