python - Warum liegt der Antwortinhalt in .text nach der Verwendung von „requests.get' als URL in Form eines Wörterbuchs vor, der Typ lautet jedoch „str'.
学习ing
学习ing 2017-06-12 09:21:24
0
3
1009

Ich verwende den Jupyter von Anaconda, um den Code auszuführen.
Ich verwende das Modul „Anfragen“, um die Webseite zu lesen. Ich sehe, dass der Ausgabeinhalt in „Klammern“ steht , also verwende ich die Funktion von dict, um den Wert zu lesen, aber es ist fehlgeschlagen.
type()
hat festgestellt, dass sein Attribut str
war. Nachdem ich json verwendet hatte, stellte ich fest, dass sich das Attribut in dict
geändert hatte. Wenn das Programm diese Art von Wörterbuchinhaltenals
Zeichenfolgen liest, wie sollen wir sie dann wieder in Wörterbuchattribute
umwandeln?

学习ing
学习ing

Antworte allen(3)
習慣沉默

請樓主以後發問多利用 <> 編輯按鈕加入代碼,方便別人試代碼。

試試以下代碼:

x = eval(r.text)
y = r.json()
print (type(x), type(y))
print (x==y)

結果應該是兩個都是字典,而且內容一致。換句話說:

x = eval(r.text)  
y = r.json()      
  • x 是把r.text的字符串直接當成表述句expressions執行了,產生一字典

  • y 是r.json()方法傳回的json物件,產生一字典

所以你的問題是:
「当程序把这类字典形式的内容当字符串来读取时候,该如何让他们重新变成字典属性?」
可以比較精確的改問為:
「字符串中為一個字典形式的表述句,该如何將字符串变成字典?」
那麼答案就是內置函數eval()

當然,requests模塊本來就有.json()方法,你本來就可以用的

伊谢尔伦

d = r.json()

这样,就得到 字典d 了

迷茫

外面还有层引号呢

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage