在numpy数组上实现ast.literal_eval

时间:2016-04-12 12:47:47

标签: python arrays numpy dictionary

使用以下表达式,您可以将字符串转换为python dict。

>>> import ast
>>> a = ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'kitty'}")
>>> a
{'muffin': 'lolz', 'foo': 'kitty'}

使用以下表达式,您可以获得“foo”值:

>>> a.get('foo')

我有一个类似于python dict格式的字符串数组。

首先,我想将它们全部转换为dict,因此我将能够创建一个dict数组。

其次,我想从该dict数组中获取所有“foo”值,因此我将能够创建一个“foo”数组。

我该如何管理?

谢谢,

1 个答案:

答案 0 :(得分:1)

这大概是你所追求的吗?

import ast
import numpy
a = numpy.array(["{'foo':123}","{'foo':234}"])
numpy.fromiter((ast.literal_eval(s)['foo'] for s in a), numpy.int_)

(当然,适当的dtype将取决于那些dicts中的实际内容。)