用逗号 (,) 拆分字符串并在 python 中排除列表
Split string with comma(,) and exclude list in python
我有一个字符串
'[abc, def, ijk],somedata1,somedata2,somedata3,somedata4'
我想拆分如下:
[['abc', 'def', 'ijk'], 'somedata1', 'somedata2', 'somedata3', 'somedata4']
但是当我使用 .split(',')
时,列表也会拆分
'[abc, def, ijk],somedata1,somedata2,somedata3,somedata4'.split(',')
输出:
['[abc', ' def', ' ijk]', 'somedata1', 'somedata2', 'somedata3', 'somedata4']
在 Python 中有没有办法与 ,
分开但排除列表?
一个简单的技巧是在现有字符串周围加上引号,以便能够使用 ast.literal_eval
:
import ast
import re
s = '[abc, def, ijk],somedata1,somedata2,somedata3,somedata4'
data = list(ast.literal_eval(re.subn(r'(\w+)', r"''", s)[0]))
它给出了预期的结果:
[['abc', 'def', 'ijk'], 'somedata1', 'somedata2', 'somedata3', 'somedata4']
但要注意:包含引号的任何更复杂的字符串都会立即破坏此代码...
我有一个字符串
'[abc, def, ijk],somedata1,somedata2,somedata3,somedata4'
我想拆分如下:
[['abc', 'def', 'ijk'], 'somedata1', 'somedata2', 'somedata3', 'somedata4']
但是当我使用 .split(',')
时,列表也会拆分
'[abc, def, ijk],somedata1,somedata2,somedata3,somedata4'.split(',')
输出:
['[abc', ' def', ' ijk]', 'somedata1', 'somedata2', 'somedata3', 'somedata4']
在 Python 中有没有办法与 ,
分开但排除列表?
一个简单的技巧是在现有字符串周围加上引号,以便能够使用 ast.literal_eval
:
import ast
import re
s = '[abc, def, ijk],somedata1,somedata2,somedata3,somedata4'
data = list(ast.literal_eval(re.subn(r'(\w+)', r"''", s)[0]))
它给出了预期的结果:
[['abc', 'def', 'ijk'], 'somedata1', 'somedata2', 'somedata3', 'somedata4']
但要注意:包含引号的任何更复杂的字符串都会立即破坏此代码...