Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-Requests-jsondecoderror 你好, 在Python中运行以下脚本时出现以下错误:_Python_Python Requests_Python Jsons - Fatal编程技术网

Python-Requests-jsondecoderror 你好, 在Python中运行以下脚本时出现以下错误:

Python-Requests-jsondecoderror 你好, 在Python中运行以下脚本时出现以下错误:,python,python-requests,python-jsons,Python,Python Requests,Python Jsons,C:\ProgramData\Anaconda3\envs\test\python.exe C:/Users/Solba/PycharmProjects/test/main.py 回溯(最近一次呼叫最后一次): 文件“C:/Users/Solba/PycharmProjects/test/main.py”,第4行,在 data=r.json() 文件“C:\ProgramData\Anaconda3\envs\test\lib\site packages\requests\models.py”,

C:\ProgramData\Anaconda3\envs\test\python.exe C:/Users/Solba/PycharmProjects/test/main.py
回溯(最近一次呼叫最后一次):
文件“C:/Users/Solba/PycharmProjects/test/main.py”,第4行,在
data=r.json()
文件“C:\ProgramData\Anaconda3\envs\test\lib\site packages\requests\models.py”,第900行,json格式
返回complexjson.load(self.text,**kwargs)
文件“C:\ProgramData\Anaconda3\envs\test\lib\json\u init\uuuz.py”,第357行,加载
返回默认解码器。解码
文件“C:\ProgramData\Anaconda3\envs\test\lib\json\decoder.py”,第337行,解码
obj,end=self.raw\u decode(s,idx=\w(s,0.end())
文件“C:\ProgramData\Anaconda3\envs\test\lib\json\decoder.py”,第355行,原始解码
将JSONDecodeError(“预期值”、s、err.value)从None提升到None
json.decoder.JSONDecodeError:预期值:第1行第1列(字符0)

进程已完成,退出代码为1


Python版本:3.9
PyCharm版本:2020.3.1
巨蟒版本:1.10.0



请帮忙。谢谢。

原因是响应没有返回JSON,而是返回整个HTML页面。尝试
r.text
而不是
r.json()…
,然后在那里做任何你想做的事情

如果您不确定它返回的内容类型:

h=requests.head('https://www.instagram.com/p/CJDxE7Yp5Oj/?__a=1')
header=h.headers
contentType=header.get('content-type')
打印(内容类型)
根据您的URL,它返回
text/html

或者,您可以尝试在请求中添加
用户代理
——这是为了模拟请求,使其看起来像来自浏览器,而不是脚本

标题={
“用户代理”:“Mozilla/5.0(Windows NT 10.0;Win64;x64)Chrome/46.0.2490.80”
}
r=请求。获取('https://www.instagram.com/p/CJDxE7Yp5Oj/?__a=1,headers=headers)
data=r.json()
r.json()
要求API返回一个json字符串。API应该明确表示它通过响应头使用JSON进行响应

在本例中,您请求的URL要么没有使用正确的JSON进行响应,要么没有明确表示它正在使用JSON进行响应

您可以首先通过以下方式检查URL发送的响应:

data = r.text
print(data)
如果可以将响应视为JSON字符串,则可以使用以下方法处理它:

import json
data = json.loads(r.text)
注:
您还可以检查
内容类型
接受
标题,以确保请求和响应属于所需的数据类型

这是否回答了您的问题?如果你打开url:你看到它已经用json写了,我怎么能让它重复呢?
import json
data = json.loads(r.text)