繁体   English   中英

用逗号(,)分割字符串并排除 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(',')

Output:

['[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"'\1'", s)[0]))

它按预期给出:

[['abc', 'def', 'ijk'], 'somedata1', 'somedata2', 'somedata3', 'somedata4']

但请注意:任何包含引号的更复杂的字符串都会立即破坏此代码......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM