如何在Python中将字符串数组转换为数组

16

我想将存储在MySQL数据库中的数组(以字符串形式)转换为Python标准数组,例如:

这是我从数据库中获取的内容:

"['a',['b','c','d'],'e']" # this is a string in the format of an array that holds strings inside it.

我需要从字符串中删除数组,以便它像普通数组一样运作。非常感谢您的帮助。如果此问题已在其他地方得到解答,我不确定,很抱歉无法找到。

2个回答

39

你可以在ast模块中使用literal_eval

>>> from ast import literal_eval
>>> s = "['a',['b','c','d'],'e']"
>>> print(literal_eval(s))
['a', ['b', 'c', 'd'], 'e']

1
虽然这肯定是正确的(+1)......但他可能要考虑将存储在数据库中的格式更改为JSON或其他格式。 - Joran Beasley
@JoranBeasley 你知道我怎样使用Python将JSON存储到数据库中吗? - Riley
@RileyThe15YearOld json.dumps() 将把你的数组转换成JSON字符串,而json.loads()将它还原为 Python 数组。 - TheSoundDefense
@TheSoundDefense 我只是希望将它保留为数组。 - Riley
@RileyThe15YearOld 好的,但我认为它不会像现在这样可靠和安全。 - TheSoundDefense
@TheSoundDefense,它所要做的就是为网站存储菜单选项,所以应该没问题。 - Riley

12

如果您可以将这些单引号转换为双引号,就可以使用JSON解析。

import json
obj1 = json.loads('["a", ["b", "c", "d"], "e"]')

已接受的答案是更好的解决方案。 - Omar Shabab
1
这也是一个很好的解决方案。 - Necromancer
我认为你的解决方案更好。 - Dwa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接