Listenausgabe ohne Formatangaben(?)

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
doca82
User
Beiträge: 48
Registriert: Mittwoch 16. September 2009, 19:39
Wohnort: Berlin

Hi leute,
mal wieder ein Anfägerproblem, zu dessen Lösung ich erst mal wissen müsste, wie mein Probelm heißt?!

habe folgende Liste, die ich aus einer mysql datenbank bekomme:

Code: Alles auswählen

from decimal import Decimal
import datetime

data1 = [('Webmaster', 9L, 1L, 'Teststr.', '4', '12345', 'Berlin',\
          1L, 'Test', 2L, 'Premiumpaket', Decimal('145.00'),\
          0L, datetime.datetime(2009, 12, 8, 0, 0), 23L, 23L, 2L)]
Ich möchte gerne die "richtigen" Daten "dahinter" bekommen, also ohne die Formatangaben L und den Objectangaben-Schnickschnak etc.

gibt es da einen befehl zum "encoden" oder so?

Grüße
und Danke
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Ich verstehe das Problem gerade nicht. Willst du etwas ausgeben oder die Typen umwandeln?
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
doca82
User
Beiträge: 48
Registriert: Mittwoch 16. September 2009, 19:39
Wohnort: Berlin

hi, danke für die Nachfrage

ich möchte eine liste mit den "richtigen" werten also ungefähr so:

Code: Alles auswählen

data1 = [('Webmaster',9 , 1, 'Teststr.', '4', '12345', 'Berlin',\
          1, 'Test', 2, 'Premiumpaket', 145.00',\
          0.19,2009-12-8, 23, 23, 2)]
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Du bekommst so oder so Objekte, das was du meinst duerfte die `repr` Darstellung sein, die kannst du nicht ohne weiteres aendern (nich dass das einen Sinn haette ...).

Also: Was hast du vor?
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

doca82 hat geschrieben:hi, danke für die Nachfrage

ich möchte eine liste mit den "richtigen" werten also ungefähr so:
Was möchtest du denn mit der Liste machen? Dann können wir dir nicht nur deine Frage beantworten, sondern vermutlich auch sagen, was du eigentlich wissen möchtest.
doca82
User
Beiträge: 48
Registriert: Mittwoch 16. September 2009, 19:39
Wohnort: Berlin

ich wollte die Daten in ein PDF schreiben lassen....soll eine rechnung werden :-P
mit repr(data1) ändert sich nicht so viel....oder wie kann ich da vorgehen?
Danke
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Code: Alles auswählen

[str(x) for x in data1[0]]

Code: Alles auswählen

['Webmaster', '9', '1', 'Teststr.', '4', '12345', 'Berlin', '1', 'Test', '2',
 'Premiumpaket', '145.00', '0', '2009-12-08 00:00:00', '23', '23', '2']
doca82
User
Beiträge: 48
Registriert: Mittwoch 16. September 2009, 19:39
Wohnort: Berlin

aaautsch, das war billig...;)))
Danke Dauerbaustelle und den anderen!

Hat jemand lust mir zu erklären warum eine stringformatierung die Lösung ist ...nur neugierig
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

repr repräsentiert das Objekt, gibt also möglichst genaue Angaben. str ist halt für print und für die Ausgabe wichtig, weil dort die Implementierungsdetails nicht interessieren.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

doca82 hat geschrieben:ich wollte die Daten in ein PDF schreiben lassen....soll eine rechnung werden :-P
Na bitte. Dann kann es dir egal sein, wie die Ausgabe der Liste im Moment aussieht. Da du die Elemente später sowieso einzeln schreiben wirst. Diese komischen Formatierungen siehst du nur, weil du die Liste als ganzes ausgeben lässt und da wird dann automatisch repr() auf die Elemente der Liste angewendet und nicht str() wie bei dir später.

Also die Antwort von Dauerbaustelle ist zwar die Antwort auf deine Frage, aber nicht die Lösung deines Problem, da du das Problem nicht haben wirst.
doca82
User
Beiträge: 48
Registriert: Mittwoch 16. September 2009, 19:39
Wohnort: Berlin

vielen dan darii, macht dann doch sinn mal zu erzählen was man vor hat...hätte jetzt die ausgabe komplett in das str() umgesetzt ;))) Die arbeit werde ich mir dann nicht machen, bzw. erst später....

Das Forum macht echt spass...und spart eine Menge Programmierzeit
Hut ab!
Antworten