Python 里有什么办法让字符串的转成数组呢 如下

2018-02-20 17:10:26 +08:00
 jakeyfly

'[1,2,3,4,]' 怎么把他变成数组啊 [1,2,3,4]

想了好久 T T

4834 次点击
所在节点    问与答
17 条回复
tomczhen
2018-02-20 17:16:06 +08:00
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
lhx2008
2018-02-20 17:16:35 +08:00
json 解析
snal123
2018-02-20 17:17:27 +08:00
split 然后 join
benzzz
2018-02-20 17:17:31 +08:00
albertofwb
2018-02-20 17:20:19 +08:00
srlp
2018-02-20 17:24:55 +08:00
如果是 [1,2,3,4] (没有最后一个逗号)的话可以直接 json.loads()

纯数字的话,可以 import re 然后

re.findall(r'\d+', '[1,2,3,4,]')
tux
2018-02-20 17:25:33 +08:00
正则?
TtiGeR
2018-02-20 17:35:00 +08:00
如果数据是干净的(不是用户输入存在 injection 的可能)的话 eval()不是挺好么
di94sh
2018-02-20 17:47:15 +08:00
'[1,2,3,4]'.strip('[]').split(',')
jackyzy823
2018-02-20 17:49:04 +08:00
import ast; ast.literal_eval("[1,2,3,4]")
laike9m
2018-02-20 18:42:39 +08:00
eval 正解
l1093178
2018-02-20 20:43:59 +08:00
eval 会有安全性风险,ast.literal_eval 正解
Eds1995
2018-02-21 10:28:27 +08:00
用 eval 的人好可怕,楼上正解:import ast ast.literal_eval
jakeyfly
2018-02-21 13:40:49 +08:00
@Eds1995 为啥可怕啊
Eds1995
2018-02-21 14:16:20 +08:00
@jakeyfly Eval 是邪恶的
jakeyfly
2018-02-21 16:52:17 +08:00
@Eds1995 大佬 听不懂啊 求指导
izoabr
2018-02-22 00:28:44 +08:00
>>> t = '[1,2,3,4,]'
>>> eval(t)
[1, 2, 3, 4]
>>>

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/431356

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX