Heim > Fragen und Antworten > Hauptteil
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?
習慣沉默2017-06-12 09:23:24
請樓主以後發問多利用 <> 編輯按鈕加入代碼,方便別人試代碼。
試試以下代碼:
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()方法,你本來就可以用的