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:

 >>> 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,

  • Python Write to Text File Dictionary Zeigt falsche Informationen an
  • Wie man die Anfangsgröße für ein Wörterbuch in Python festlegt?
  • Python Disk-basiertes Wörterbuch
  • Python nicht schreiben voller String in Datei
  • Objekt unterstützt keine Zuordnungsfehler
  • Konvertieren Sie ausgewählte Spalten in csv in Wörterbuch
  • Unschuldig Typ: 'dict' Typ Fehler [duplizieren]
  • Zugriffsfunktionen über Wörterbuch
  • 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.