Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串转换为数组python_Python_Linux - Fatal编程技术网

将字符串转换为数组python

将字符串转换为数组python,python,linux,Python,Linux,我怎样才能转动这根绳子 "((145541L, u'/.stats/'), (175706L, u'///')" 到python中的json对象,例如 {'145541' : '/.stats/', '175706' : '///' } 我一直在尝试tuple()和其他方法,但确实如此 谢谢您很可能有一个元组,并且想要创建一个字典。要执行此操作,请尝试以下操作: data = ((145541L, u'/.stats/'), (175706L, u'///')) result = dic

我怎样才能转动这根绳子

"((145541L, u'/.stats/'), (175706L, u'///')"
到python中的json对象,例如

{'145541' : '/.stats/',
 '175706' : '///'
 }
我一直在尝试tuple()和其他方法,但确实如此


谢谢

您很可能有一个元组,并且想要创建一个字典。要执行此操作,请尝试以下操作:

data = ((145541L, u'/.stats/'), (175706L, u'///'))
result = dict(data)
如果您拥有的实际上是一个字符串,请添加初始行:

data = "((145541L, u'/.stats/'), (175706L, u'///'))"
data = eval(data)
result = dict(data)
正如@Volatility所指出的,
eval
可能是危险的,因为它评估任何一段代码,而不仅仅是文字。这样,如果您收到字符串上的命令,则有人可以在您的程序上执行命令

为了避免这种情况,您可以使用
ast.literal\u eval
代替:

from ast import literal_eval
data = "((145541L, u'/.stats/'), (175706L, u'///'))"
result = dict(literal_eval(data))

您很可能有一组元组,并且希望创建一个字典。要执行此操作,请尝试以下操作:

data = ((145541L, u'/.stats/'), (175706L, u'///'))
result = dict(data)
如果您拥有的实际上是一个字符串,请添加初始行:

data = "((145541L, u'/.stats/'), (175706L, u'///'))"
data = eval(data)
result = dict(data)
正如@Volatility所指出的,
eval
可能是危险的,因为它评估任何一段代码,而不仅仅是文字。这样,如果您收到字符串上的命令,则有人可以在您的程序上执行命令

为了避免这种情况,您可以使用
ast.literal\u eval
代替:

from ast import literal_eval
data = "((145541L, u'/.stats/'), (175706L, u'///'))"
result = dict(literal_eval(data))
快速修复:

>>> import ast
>>> s = "((145541L, u'/.stats/'), (175706L, u'///')"
>>> {str(k): v for (k, v) in ast.literal_eval(s + ')')}
{'175706': u'///', '145541': u'/.stats/'}
但你真的应该试着去调查

快速修复:

>>> import ast
>>> s = "((145541L, u'/.stats/'), (175706L, u'///')"
>>> {str(k): v for (k, v) in ast.literal_eval(s + ')')}
{'175706': u'///', '145541': u'/.stats/'}

但你真的应该试着去调查

从何处获得嵌套元组的无效字符串表示形式?我相信你问错了问题。通过运行s.cursor.execute(sqlQuery)results=s.cursor.fetchall(),这不是字符串,而是元组。您可能想使用
MySQLdb.cursors.DictCursor
(假设为mysql)。您所说的“Python中的json对象”是什么意思?没有这样的事。您的预期输出是一个
dict
。您想要该
dict
的JSON编码,还是
dict
本身,还是其他什么?(您的问题是“将字符串转换为数组”,这意味着您可能需要一个
列表
元组
数组.array
numpy.ndarray
或其他类似数组,但我不确定您想要的是什么。)从何处获得嵌套元组的无效字符串表示?我相信你问错了问题。通过运行s.cursor.execute(sqlQuery)results=s.cursor.fetchall(),这不是字符串,而是元组。您可能想使用
MySQLdb.cursors.DictCursor
(假设为mysql)。您所说的“Python中的json对象”是什么意思?没有这样的事。您的预期输出是一个
dict
。您想要该
dict
的JSON编码,还是
dict
本身,还是其他什么?(您的问题是“将字符串转换为数组”,这意味着您可能需要一个
列表
元组
数组.array
numpy.ndarray
或类似的数组,但我不确定您需要什么。)
eval
是危险的-您可以使用
ast.literal\u eval
here@Volatility您是否介意添加一些解释/示例,说明为什么
eval
很危险?因为它不仅计算文字,还可以计算各种代码,如果字符串来自某个使用该程序的随机人员,他们可以很容易地“侵入”你的程序。
eval
是危险的-你可以使用
ast.literal\u eval
here@Volatility您是否介意添加一些解释/示例,说明为什么
eval
很危险?因为它不仅计算文字,还可以计算各种代码,如果该字符串来自某个随机使用该程序的人,他们可以很容易地“侵入”你的程序。看起来他想要的键是字符串(值是
str
,而不是
unicode
,但这可能不重要,而
int
str
则相反)。看起来他想要的键是字符串(值为
str
而不是
unicode
,但这可能并不重要,而
int
str
则有关系)。