[Python] Wenn Sie eine Datei mit demselben Namen wie das zu importierende Modul erstellen, tritt ein Attributfehler auf.

Ich wollte nur den Betrieb der Bibliothek überprüfen, war aber süchtig danach.

Angenommen, Sie erstellen eine Datei mit dem Namen "json.py", um das json-Modul auszuprobieren.

json.py


import json

obj = {
    "id" : 1,
    "name" : "hoge",
}

str = json.dumps(obj)
print(str)

Der Code scheint kein Problem zu sein ...

Dies führt beim Ausführen zu einem Fehler.

$ python3 json.py
...
AttributeError: module 'json' has no attribute 'dumps'

Es wird gesagt, dass das JSON-Modul keine Dumps hat.

Dies liegt daran, dass der Dateiname selbst json ist und daher vor dem Standardmodul geladen wurde.

Daher wird das Problem durch Umbenennen gelöst.

$ mv json.py json_test.py
$ python3 json_test.py
{"id": 1, "name": "hoge"}

Übrigens, auch wenn Sie nicht den Dateinamen json haben, können Sie das gleiche Ergebnis erhalten, wenn json.py in derselben Verzeichnishierarchie vorhanden ist.

Sie erhalten das gleiche Ergebnis auch, wenn Sie ein Verzeichnis mit demselben Namen haben, das "__init __. Py" enthält.

$ mkdir ./json
$ touch ./json/__init__.py
$ python3 json_test.py
Traceback (most recent call last):
  File "json_test.py", line 8, in <module>
    str = json.dumps(obj)
AttributeError: module 'json' has no attribute 'dumps'

Recommended Posts

[Python] Wenn Sie eine Datei mit demselben Namen wie das zu importierende Modul erstellen, tritt ein Attributfehler auf.
Was tun, wenn der Fehler angezeigt wird? Das Ziel-WSGI-Skript '/ var / www / xxx / xxx.wsgi' kann nicht als Python-Modul geladen werden
[Python] Sie können ein Objekt mithilfe des Pickle-Moduls in einer Datei speichern.
Wenn Sie einen Singleton in Python möchten, stellen Sie sich das Modul als Singleton vor
Die Geschichte, ein Tool zum Laden von Bildern mit Python zu erstellen ⇒ Speichern unter
Was tun, wenn bei der Installation von Python mit pyenv eine Fehlermeldung angezeigt wird?
Was tun, wenn bei der Installation von Python 2 mit pyenv ein OpenSSL-Fehler auftritt?
Was tun, wenn Sie Python auf IntelliJ ausführen und mit einem Fehler beenden?
Eine Funktionsnotiz, die nützlich ist, wenn Sie den Debugger aufrufen möchten, wenn beim Ausführen eines Python-Skripts ein Fehler auftritt.
[Python] Wenn Sie plötzlich ein Anfrageformular erstellen möchten
[Python] Ändern Sie den Namen der Bilddatei in eine Seriennummer
Wahrscheinlich der einfachste Weg, um mit Python 3 ein PDF zu erstellen
[Python Kivy] So erstellen Sie mit pyinstaller eine exe-Datei
Erstellen Sie mit Google Text To Speak eine Audiodatei mit der Text-to-Speech-Funktion und überprüfen Sie den Text 3 Minuten lang als Leitfaden für das Sprechen.
Versuchen Sie, die verstümmelten Zeichen im angehängten Dateinamen mit Python zu entschlüsseln
Wenn Sie mit python3 mit urllib auf eine URL zugreifen, die Japanisch (japanische URL) enthält, wird diese willkürlich mit HTML codiert, und es tritt ein Fehler auf. Notieren Sie sich daher die Problemumgehung
[Python] Erstellen Sie ein Programm, das Zeilenumbrüche in der Zwischenablage löscht. + Als Verknüpfung mit Fenstern registrieren
Wenn Sie die Liste entfernen, die geloopt werden soll, werden Sie schrecklich.
Erstellen Sie ein Shell-Skript, um die Python-Datei mehrmals auszuführen
Python vba zum Erstellen einer Datumszeichenfolge zum Erstellen eines Dateinamens
Rufen Sie die Formel in der Excel-Datei als Zeichenfolge in Python ab
Erstellen Sie ein Kompatibilitätsbewertungsprogramm mit dem Zufallsmodul von Python.
Was tun, wenn bei Verwendung von Python mit der NetBeans-IDE die Warnung "Falsche Python-Plattform" angezeigt wird?
Was tun, wenn Sie mit Python keine E-Mail an Yahoo senden konnten?
Wenn Sie awsebcli in CircleCI aufnehmen möchten, geben Sie die Python-Version an
Überprüfen Sie den Dateinamen, wenn Sie durch Python-Import nicht informiert werden
Ich erhalte einen Python No-Modul mit dem Namen 'Encodings' mit dem Befehl aws
Erstellen Sie mit dem Python-Anforderungsmodul einen Datensatz mit Anhängen in KINTONE
Wenn in boto3 der Fehler no attribute angezeigt wird, überprüfen Sie die Version
Was tun, wenn der Fehler RuntimeError angezeigt wird: Python wird nicht als Framework installiert, wenn Sie versuchen, matplitlib und pylab in Python 3.3 zu verwenden
Erstellen Sie schnell eine Excel-Datei mit Python #python
<Python> Ein Quiz zum Batch-Konvertieren von Dateinamen, die durch eine bestimmte Zeichenfolge als Teil des Dateinamens getrennt sind
[Python] Wäre es nicht das Beste und Höchste, wenn Sie die Unternehmensmerkmale mit nlplot erfassen könnten?
[Python] Umgang mit dem is-Instanzfehler "is instance () arg 2 muss ein Typ oder ein Tupel von Typen sein"
Was tun, wenn beim Laden eines mit Poesie erstellten Python-Projekts in VS Code ein Fehler auftritt?
Problemumgehung, wenn beim Versuch, PySide mit pip zu installieren, eine Fehlermeldung angezeigt wird
Wenn Sie sudo in Ubuntu hinzufügen, wird es als Standardpython bezeichnet.
Sie werden in 100 Tagen Ingenieur - 29. Tag - Python - Grundlagen der Python-Sprache 5
Sie werden in 100 Tagen Ingenieur - Tag 33 - Python - Grundlagen der Python-Sprache 8
Sie werden in 100 Tagen Ingenieur - 26. Tag - Python - Grundlagen der Python-Sprache 3
Sie werden in 100 Tagen Ingenieur - Tag 35 - Python - Was Sie mit Python tun können
Verwenden Sie den Befehl [shell], um eine beliebige Datei zu komprimieren, um eine Datei zu erstellen und die Originaldatei zu löschen.
Speichern Sie das numpy-Array mithilfe des Wave-Moduls in einer WAV-Datei
Sie werden in 100 Tagen Ingenieur - Tag 32 - Python - Grundlagen der Python-Sprache 7
Installieren Sie die Python-Bibliothek, wenn Sie kein Sudoer sind (oder wenn Sie nicht möchten, dass neue Benutzer Sudoer sind, es Ihnen aber nichts ausmacht, die Python-Bibliothek einzuschließen).
Wenn in der Funktion eine Ausnahme auftritt, wird diese an den Anrufer 2 übertragen
[Python] Ich habe versucht, den Typnamen als Zeichenfolge aus der Typfunktion abzurufen
Wenn beim Tippen einer interaktiven Shell mit Anaconda eine lange Fehlermeldung angezeigt wird
Wenn in der Funktion eine Ausnahme auftritt, wird diese an den Anrufer 1 übertragen
Sie werden in 100 Tagen Ingenieur - 28. Tag - Python - Grundlagen der Python-Sprache 4
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Python-Tricks: Eine Kombination aus enumerate () und zip (), bei der überprüft wird, ob eine Zeichenfolge in eine Zahl konvertiert werden kann, wobei die Zeichenfolge als Zahl sortiert wird
Fehler beim Installieren eines Moduls mit Python pip
Lesen einer CSV-Datei mit Python 2/3
So erstellen Sie eine JSON-Datei in Python
Wenn Sie Word Cloud erstellen möchten.
Schritte zum Erstellen eines Twitter-Bots mit Python
Speichern Sie das Objekt in einer Datei mit pickle