python - 为什么用requests.get网址后,用.text响应内容为字典的形式,却type它为str
本文介绍了python - 为什么用requests.get网址后,用.text响应内容为字典的形式,却type它为str的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
我使用anaconda 的 jupyter来跑代码,
在我使用requests模块来来读取网页,
看到输出内容在大括号内,判断是字典,就用来dict的函数来读取值,却失败了。
type()发现它的属性发现是str
我用json后,却发现属性又变成dict。
当程序把这类字典形式的内容当字符串来读取时候,
该如何让他们重新变成字典属性?
解决方案
請樓主以後發問多利用 <> 編輯按鈕加入代碼,方便別人試代碼。
試試以下代碼:
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()方法,你本來就可以用的
这篇关于python - 为什么用requests.get网址后,用.text响应内容为字典的形式,却type它为str的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文