如何在Python中获取字符串的第二行

时间:2014-12-15 10:52:43

标签: python string

我正在使用像这样响应的网络服务....

error code|text|reference
0|sms submitted|11010d3b0d6872af47b938aebb450d06-3

目前我检查status_msg starts是否error

 if status_msg.startswith('error'):

这是一种不好的方式。

如何从Python中的响应中获取实际的error code,在此示例中为0

我试过这个go to second line, get first number

 if status_msg.startswith('error') and not status_msg.splitlines()[2][1:] == 0:

2 个答案:

答案 0 :(得分:3)

您可以将其转换为字典:

>>> s = '''error code|text|reference
0|sms submitted|11010d3b0d6872af47b938aebb450d06-3'''
>>> d = dict(zip(*(line.split('|') for line in s.splitlines())))
>>> d
{'text': 'sms submitted',
 'reference': '11010d3b0d6872af47b938aebb450d06-3',
 'error code': '0'}

答案 1 :(得分:1)

关闭...试试这个:

(msg, reference) = status_msg.splitlines()[1][1:]
#                                          ^ This index should be 1, not 2.

Python中迭代的索引是从零开始的,而不是基于一的。该表达式的结果应该是一个包含“sms”消息和代码的双元素列表。