Ich habe ein Python-Programm, das eine SOAP-Anfrage an einen Server, und es funktioniert gut:
Ich bekomme die Antwort vom Server, parse es, sauber es, und wenn ich fertig bin, habe ich am Ende mit einer Schnur wie das oben:Python - Split eine Zeichenfolge in Liste nach einer bestimmten Anzahl von Sonderzeichen
name|value|value_name|default|seq|last_modify|record_type|1|Detail|0|0|20150807115904|zero_out|0|No|0|0|20150807115911|out_ind|1|Partially ZeroOut|0|0|20150807115911|...
Im Grunde ist es ein String mit den Werten von begrenzt ist „|“. Ich kenne auch die Struktur der Datenbank, die ich anfordere, also weiß ich, dass es 6 Spalten und verschiedene Reihen hat. Ich muss im Grunde die Saite nach jedem 6. teilen "|" Charakter zu erhalten, so etwas wie:
name|value|value_name|default|seq|last_modify|
record_type|1|Detail|0|0|20150807115904|
zero_out|0|No|0|0|20150807115911|
out_ind|1|Partially ZeroOut|0|0|20150807115911|...
Können Sie mir sagen, wie das in Python zu tun? Vielen Dank!
Können Sie nicht einfach jedes Zeichen in den s durchlaufen tring und zähle das "|" und teilen Sie es, wenn die Zählung durch 6 teilbar ist? – Ryan
@Ryan Sie können das tun, aber anstatt eine Python-Schleife zu schreiben, die die Zeichen eins nach dem anderen scannt, ist es schneller, eine Funktion zu verwenden, die mit C-Geschwindigkeit läuft und die Trennzeichen effizienter finden kann. Eine Alternative zur Verwendung der "str.split" -Methode (oder vielleicht "str.partition") besteht darin, entweder "str.index" oder "str.find" mit einem geeigneten "start" -Arg zu verwenden. –
@Ryan: Ich dachte darüber nach, aber PM 2Ring sagte, ich fürchte, das würde zeitaufwendig sein: einige der Antworten vom Server können Tabellen mit Millionen von Feldern enthalten, so dass der Text Zeichen für Zeichen durchläuft No Go. Trotzdem danke! – giga