首頁  >  問答  >  主體

python - 為什麼用requests.get網址後,用.text回應內容為字典的形式,卻type它為str

我使用anaconda 的jupyter來跑程式碼,
在我使用requests模組來來讀取網頁,
##看到輸出內容在
大括號內,判斷是字典,就用來dict的函數來讀取值,卻失敗了。

type()發現它的屬性發現是str
我用
json後,卻發現屬性又變成dict

當程式把這類

字典形式的內容字串來讀取時候,該如何讓他們重新變成
字典屬性

学习ing学习ing2686 天前946

全部回覆(3)我來回復

  • 習慣沉默

    習慣沉默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物件,產生一字典

    所以你的問題是:
    「當程式把這類字典形式的內容當字串來讀取時候,該如何讓他們重新變成字典屬性?」
    可以比較精確的改問為:
    「字串中為一個字典形式的表述句,該如何將字串變成字典?
    當然,requests模組本來就有.json()方法,你本來就可以用的

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-12 09:23:24

    d = r.json()

    這樣,就得到 字典d 了

    回覆
    0
  • 迷茫

    迷茫2017-06-12 09:23:24

    外面還有層引號呢

    回覆
    0
  • 取消回覆