2016-04-12 15 views
-2

Mit dem folgenden Ausdruck können Sie eine Zeichenfolge in ein Python-Diktat konvertieren.Implementieren von ast.literal_eval auf einem numpy Array

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

Und mit dem folgenden Ausdruck, können Sie die "foo" Wert erhalten:

>>> a.get('foo') 

ich ein Array von Strings haben, die zu dict Format Python ähnlich sind.

Erstens möchte ich alle von ihnen zu dict konvertieren, so dass ich in der Lage sein werde, ein dict-Array zu erstellen.

Zweitens möchte ich alle "foo" -Werte von diesem dict-Array bekommen, so dass ich in der Lage sein werde, ein "foo" -Array zu erstellen.

Wie kann ich das schaffen?

Danke,

+1

Blick in der Liste und dict Comprehensions .... oder Schleifen, aber Comprehensions sind leichter ... –

+1

„Ich habe ein Array von Strings, die dem Python-Dict-Format ähneln. "Ist das nicht JSON? Warum nicht eine kurze Probe Ihrer Daten einschließen? –

Antwort

1

Ist das ungefähr was Sie suchen?

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

(Natürlich wird die entsprechende dtype davon ab, was in dieser dicts eigentlich ist.)

Verwandte Themen