您的位置:首页技术文章
文章详情页

python - 为什么用requests.get网址后,用.text响应内容为字典的形式,却type它为str

浏览:71日期:2022-06-29 16:28:04

问题描述

我使用anaconda 的 jupyter来跑代码,在我使用requests模块来来读取网页,python - 为什么用requests.get网址后,用.text响应内容为字典的形式,却type它为str看到输出内容在大括号内,判断是字典,就用来dict的函数来读取值,却失败了。python - 为什么用requests.get网址后,用.text响应内容为字典的形式,却type它为strtype()发现它的属性发现是strpython - 为什么用requests.get网址后,用.text响应内容为字典的形式,却type它为str我用json后,却发现属性又变成dict

当程序把这类字典形式的内容字符串来读取时候,该如何让他们重新变成字典属性

问题解答

回答1:

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

試試以下代碼:

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()方法,你本來就可以用的

回答2:

d = r.json()

这样,就得到 字典d 了

回答3:

外面还有层引号呢

标签: Python 编程