Das Hauptproblem besteht darin, dass dictreader keine Möglichkeit bietet, Schlüssel aus dem Wörterbuch zu extrahieren.
Ich habe ein Wörterbuch, aus dem ich versuche, Schlüssel zu extrahieren. Das Wörterbuch heißt "dictreader" und sieht so aus:
{'id': '1', 'name': 'John', 'age': '20', 'city': 'New York'}
Ich möchte die Schlüssel aus diesem Wörterbuch extrahieren, damit ich sie in einer for-Schleife verwenden kann. Das habe ich versucht:
for key in dictreader.keys():
print(key)
Dies gibt mir jedoch den folgenden Fehler:
"AttributeError: Typobjekt 'dictreader' hat kein Attribut 'keys'"
A:
.keys() ist eine Methode von Wörterbüchern, nicht von Objekten im Allgemeinen. Sie versuchen, es für ein Objekt des Typs aufzurufen type, die keine solche Methode hat (daher die Fehlermeldung). Um die Schlüssel Ihres Wörterbuchs zu erhalten, müssen Sie anrufen .keys(): for key in dictreader.keys(): ... . Wenn Sie über alle Attribute eines Objekts iterieren möchten, verwenden Sie .__dict__.items(): for attr_name, attr_value in dictreader.__dict__.items(): ... . Wenn Sie alle Attribute außer denen, die mit zwei Unterstrichen (private Variablen und Methoden werden nur per Konvention als Teil der Schnittstelle eines Objekts betrachtet; Sie werden von Python selbst nicht erzwungen.) benutzen [attr for attr in dir(obj) if not attr[0] == "_"]):
$ python3 -c "class A: pass; print([attr for attr in dir(A()) if not attr[0] == "_""])"" [' '