python ValueError: dictionary update sequence element #0 has length 1; 2 is required错误解决方法

这是我的爬虫代码,虽然说json.loads()可以把字符串转化成字典,但是我使用了之后发现uu3还是sttr格式,这个时候就想到用dict将字符串转化成字典,然后就报错了。

uuu=requests.get('https://feed.sina.com.cn/api/roll/get?pageid=121&lid=1356&num=20&versionNumber=1.2.4&page=3&encode=utf-8&callback=feedCardJsonpCallback&_=1586091436395')
uu2=uuu.text
uu2=uu2[26:]
uu2=uu2[:-14]
uu=demjson.encode(uu2)
uu3=json.loads(uu)
print(uu3)
uu4=dict(uu3)
print(type(uu4))

我用的解决方法是eval()函数。代码如下

uuu=requests.get('https://feed.sina.com.cn/api/roll/get?pageid=121&lid=1356&num=20&versionNumber=1.2.4&page=3&encode=utf-8&callback=feedCardJsonpCallback&_=1586091436395')
uu2=uuu.text
uu2=uu2[26:]
uu2=uu2[:-14]
uu=demjson.encode(uu2)
uu3=json.loads(uu)
print(uu3)
uu4=eval(uu3)
print(type(uu4))

这个时候的uu4就是dict格式的了。当然,你必须先保证你传进eval()的字符串的格式是字典的格式。也就是你得处理好你get网址之后得到的内容。这里可以看下我之前的文章。

https://blog.csdn.net/cuicui_ruirui/article/details/105346544

https://blog.csdn.net/cuicui_ruirui/article/details/105346364

eval()函数有一个作用是可以将看起来像列表的字符串重新转化为列表,将看起来像字典的字符串重新转化为字典

关于eval()的详细介绍看这里https://www.runoob.com/python/python-func-eval.html,可以重点看下网页下面的笔记。

 

你可能感兴趣的:(Python爬虫)