Problem mit Python json.loads (), das str in Heroku zurückgibt

Einführung

Heroku ist praktisch, nicht wahr? Wenn Sie es vorerst nur bewegen, kann es auch ein Anfänger tun. Dies ist eine Geschichte, von der ich süchtig war, als ich versuchte, einen Discord-Bot auf Heroku auszuführen.

Problem

Pythons "json.loads ()" ist eine Funktion, die einen Wörterbuchtyp (assoziatives Array), der von "json.dumps ()" usw. in eine Zeichenfolge konvertiert wurde, in den ursprünglichen Wörterbuchtyp konvertiert. Der Rückgabewert ist natürlich ein Wörterbuchtyp.

Ich konnte es problemlos auf Local und GCP verwenden, aber als ich es auf Heroku auf die gleiche Weise verschob, wurde der String-Typ aus irgendeinem Grund zurückgegeben. Ich sage nicht, dass ich versehentlich "json.dumps ()" verwendet habe.

Heroku


##Json String.Mit Lasten entpacken
loaded_dict = json.loads(dumped_string)

##Ausgabe so, auch wenn Sie drucken
print(loaded_dict)
# {"key1":"value1", "key2":{"v2k1":"v2v1"}}

##Aber es ist eine Schnur
print(loaded_dict["key1"])
# TypeError: string indices must be integers
for k, v in loaded_dict.items():
    ...
# AttributeError: 'str' object has no attribute 'items'
print(type(loaded_dict["key1"]))
# <class 'str'>

Lösungen

Herokus Suchbehinderung war so stark, dass ich nur Artikel wie "Ich habe versucht, Heroku zu verwenden" traf und die Grundursache des Problems nicht finden konnte. Die Anzeige von "print (load_dict)" selbst war jedoch nicht seltsam, daher habe ich sie mit "eval ()" gelöst.

Heroku


##Biss eval
loaded_dict = eval(json.loads(dumped_string))
##Lösung!
print(loaded_dict["key1"])
# "value1"

Recommended Posts

Problem mit Python json.loads (), das str in Heroku zurückgibt
Python + Django + Scikit-Learn + Mecab (1) mit Heroku
Python + Django + Scikit-Learn + Mecab (2) mit Heroku
Führen Sie Python regelmäßig auf Heroku Scheduler aus
Mein str (Python)
Redis auf Heroku
Python unter Windows
Twitter mit Python3
Shimehari auf Heroku
LINE Heroku Python
Python auf Windbg
Ein Memo, das ein Tutorial zum Ausführen von Python auf Heroku erstellt hat
Eine Geschichte über das Ausführen von Python auf PHP auf Heroku
Ein Memorandum zum Berühren von Python Flask mit Heroku
Bis zur Verwendung von PhantomJS mit Python auf Heroku
Installieren Sie Python auf der WSL
PyOpenGL-Setup unter Python 3
Installieren Sie Python auf Pidora.
[Heroku] Memo zum Bereitstellen von Python-Apps mit Heroku unter Windows [Python]
Installieren Sie Python auf dem Mac
Installieren von Python 3 in einer Mac-Umgebung
Ich habe Python zum ersten Mal mit Heroku ausprobiert
Installieren Sie Python3.4 unter CentOS 6.6
Pandas auf python2.6 installieren
Ich habe versucht, regelmäßig E-Mails von sendgrid mit Heroku und Python zu senden
Installieren Sie Python unter Windows
Installieren Sie Python 2.7.3 unter CentOS 5.4
Build Python auf Ubuntu
Installieren Sie Python 3.3 unter Ubuntu 12.04
Installieren Sie Python 3.4 auf einem Mac
Installieren Sie Python 3.6 auf Docker
Ein Memorandum, in dem ich über mein persönliches HEROKU & Python (Flask) gestolpert bin
Verliere nicht gegen Ruby! Wie man Python (Django) auf Heroku ausführt
So stellen Sie Pybot, das einfachste Python-Lehrbuch, auf Heroku bereit
Führen Sie Openpose unter Python (Windows) aus.
Installieren Sie Python 3.8 auf RHEL 8 (AppStream)
Verwenden Sie matplotlib unter Ubuntu 12 und Python
Installieren Sie Watchdog unter Windows + Python 3.3
Installieren Sie pygame auf python3.4 auf dem Mac
Installieren Sie Python 3.8 unter CentOS 7 (SCL)
Echtzeitdiagramm mit Plotly (Python)
Stellen Sie die Masonite-App auf Heroku 2020 bereit
Schnellste Python-Installation unter Windows
[Python] Hinweise zur Datenanalyse
Erstellen Sie eine Python-Umgebung unter Windows
Führen Sie Tensorflow 2.x unter Python 3.7 aus
Umgang mit Python auf Mac
Aktualisieren Sie die Python, die Sie auf Ihrem Mac hatten, auf 3.7-> 3.8
Installieren Sie pandas 0.14 auf python3.4 [auf Mac]
Installieren Sie OpenCV unter Ubuntu + Python
Hinweise zur Installation von Python auf Ihrem Mac
Führen Sie Pythons CGI auf CORESERVER aus
Twitter-Beiträge in Python 3 usw.
Führen Sie den Unix-Befehl auf Python aus
Erstellen Sie eine Python-Umgebung mit Windows
Python - Installieren Sie MySQLDB auf EC2
Einführung von TensorFlow in Ubuntu + Python 2.7
Installieren Sie Python 3.8 unter CentOS 8 (AppStream)
Ich habe Python unter Windows ausgeführt
Online-Übertragung mit Python