我有一个 python 程序,它向服务器发出 SOAP 请求,它工作正常:
我从服务器得到答案,解析它,清理它,当我完成时,我最终得到一个这样的字符串:
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|部分ZeroOut|0 |0|20150807115911|...
基本上,它是一个字符串,其值由“|”分隔。我也知道我请求的数据库的结构,所以我知道它有 6 列和不同的行。我基本上需要在每 6 个“|”之后拆分字符串字符,以获得类似的东西:
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|...
你能告诉我如何在 Python 中做到这一点吗?谢谢!
请您参考如下方法:
这是一个函数式解决方案。
s = '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|'
for row in map('|'.join, zip(*[iter(s.split('|'))] * 6)):
print(row + '|')
输出
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|
有关 zip(*[iter(seq)] * rowsize) 工作原理的信息,请参阅 Splitting a list into even chunks 上的链接.
