我在string
中有python
格式:
上面的""
表明它是一个字符串。现在我想解析这个string
,直到我点击第一个''
(上面例子中col3之后的空元素)和在此之前形成一个包含元素的列表。因此,基于上面的示例示例,我应该获得list
['col1', 'col2', 'col3']
。我怎样才能在python
?
答案 0 :(得分:3)
将字符串转换为列表并使用列表操作将字符串切成空字符串:
>>> s = "['col1', 'col2', 'col3','', 'row1', 'row2']"
>>> import ast
>>> L = ast.literal_eval(s)
>>> L
['col1', 'col2', 'col3', '', 'row1', 'row2']
>>> L.index('')
3
>>> L[:L.index('')]
['col1', 'col2', 'col3']
答案 1 :(得分:0)
import re
import numpy as np
l ="['col1', 'col2', 'col3','', 'row1', 'row2']"
pattern = r"'([A-Za-z0-9_\./\\-]*)'"
m = re.findall(pattern, l)
mn = np.array(m)
rslt = list(np.split(mn, np.where(mn==''))[0])
<强>输出:强>
rslt
Out[75]: ['col1', 'col2', 'col3']
<强>解释强>
In [78]: pattern = r"'([A-Za-z0-9_\./\\-]*)'"
...: m = re.findall(pattern, l)
...:
In [79]: m
Out[79]: ['col1', 'col2', 'col3', '', 'row1', 'row2']
In [80]: mn = np.array(m)
In [81]: [list(x) for x in np.split(mn, np.where(mn==''))]
Out[81]: [['col1', 'col2', 'col3'], ['', 'row1', 'row2']]
答案 2 :(得分:0)
我希望我可以使用json
直接解析您的字符串,但是当我这样做时,我会收到此错误:
>>> import json
>>> json.loads("['col1', 'col2', 'col3','', 'row1', 'row2']")
...
ValueError: No JSON object could be decoded
所以,我首先用双引号替换单引号:
>>> s = "['col1', 'col2', 'col3','', 'row1', 'row2']"
>>> m = json.loads(s.replace("'", '"'))
>>> m
[u'col1', u'col2', u'col3', u'', u'row1', u'row2']
# find first index of empty string and the splice the list
>>> m[:m.index('')]
[u'col1', u'col2', u'col3']