RT, 假设有列表 a = [1, 2, 3, 4],那么可以用 str(a)转成字符串 '[1,2,3,4]'
现在反过来想把字符串'[1,2,3,4]'转换成列表[1,2,3,4],有什么好的办法吗
拒绝 eval ,毕竟危险函数,最好是类似 json 这样的
1
billion 2016-12-27 09:14:52 +08:00 1
```
>>> import json >>> a = '[1,2,2]' >>> b = json.loads(a) >>> b [1, 2, 2] ``` |
2
Mistwave 2016-12-27 10:55:05 +08:00
>>> a = '[1,2,2]'
>>> b = list(a)[1::2] >>> b ['1', '2', '2'] 如果有空格,可以先 split 然后 join 去空格(逃 还是用 json 吧 |
3
glasslion 2016-12-27 10:59:11 +08:00 1
ast. literal_eval safe
|
4
wyntergreg 2016-12-27 11:19:44 +08:00
a = '[1, 2, 3, 4]'.strip('[').strip(']').split(',')
|
5
Kisesy 2016-12-27 11:21:16 +08:00
eval 确实是危险函数,但是有几个人能写出让它危险的代码来,就你这个还怕危险。。。
|
6
tumbzzc 2016-12-27 11:39:03 +08:00
eval 虽然 evil ,但是只是将字符串转为 list 的话有多危险??
|
7
hugo775128583 2016-12-27 12:29:31 +08:00 via Android
@glasslion 正解
|