json.decoder.JSONDecodeError:Expecting value :line 1 column 1

项目场景:

python关于爬取豆瓣电影排行榜的练习


问题描述:


数据传输过程中数据总是提示下方的错误

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

原因分析:

出现这类问题刚开始我也找了很多大佬发的文章,后来才发现竟然出现在这个位置

错误原代码

 


import  requests
import  json

url = 'https://movie.douban.com/typerank'
#设置参数
param = {
    'type': '24',
    'interval_id': '100:90',
    'action':'',
    'start': '1',  #从哪个位置开始取
    'limit': '20'  #一次取多少
}
#UA伪装
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36'
}

response = requests.get(url=url,params=param,headers=headers)

#获取响应数据
list_data = response.json()
#持久化存储

fp = open('./douban.json','w',encoding='utf-8')
json.dump(list_data,fp=fp,ensure_ascii=False)

运行提示:

软件一直提醒我是json数据在第一行第一列少了某种东西,反复查找后才弄清楚原来我犯了一个特别简单的错误。

python爬取网页一部分代码时,传入url的不再是网站的网址,而应该是network下的request URL内容。


解决方案:

方法如下:

以下高光部分需在写代码时着重了解,且传入url的网址为Request URL后面的内容,注意关注Request Method后方是GET还是POST请求哦

正确代码:



import  requests
import  json

url = ' https://movie.douban.com/j/chart/top_list'

#设置参数
param = {
    'type': '24',
    'interval_id': '100:90',
    'action':'',
    'start': '1',  #从哪个位置开始取
    'limit': '20'  #一次取多少
}
#UA伪装
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36'
}

response = requests.get(url=url,params=param,headers=headers)

#获取响应数据
list_data = response.json()
#持久化存储

fp = open('./douban.json','w',encoding='utf-8')
json.dump(list_data,fp=fp,ensure_ascii=False)

好啦,学废了没

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值