Implementierung von ast.literal_eval auf einem numpy Array

Mit dem folgenden Ausdruck kannst du einen String in einen Python-Dict umwandeln.

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

Und mit dem folgenden Ausdruck kannst du den "foo" Wert bekommen:

  • Wie passt Pythonic Garbage Collection mit numpy Array an und löscht?
  • Multiply 2D NumPy Arrays Element-weise und Summe
  • Erstellen Sie Probe numpy Array mit zufällig platzierten NaNs
  • Beschleunigung für Schleife mit numpy
  • Numpy.delete wechselnde Arrays von floats zu Strings
  • Initialisierung von numpy maskiertem Array aus Python int list mit None values
  •  >>> a.get('foo') 

    Ich habe eine Reihe von Saiten, die ähnlich wie python dict Format sind.

    Zuerst möchte ich alle von ihnen umwandeln, also werde ich in der Lage sein, ein dict-Array zu erstellen.

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

    Wie kann ich das schaffen?

    Vielen Dank,

    One Solution collect form web for “Implementierung von ast.literal_eval auf einem numpy Array”

    Ist das ungefähr was du nachher hast?

     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 hängt der passende dtype davon ab, was eigentlich in diesen dicts ist.)

    Python ist die beste Programmiersprache der Welt.