Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 我收到此错误simplejson.errors.JSONDecodeError:期望值:第1行第1列(字符0)_Python_Json_Api_Weather_Forecast - Fatal编程技术网

Python 我收到此错误simplejson.errors.JSONDecodeError:期望值:第1行第1列(字符0)

Python 我收到此错误simplejson.errors.JSONDecodeError:期望值:第1行第1列(字符0),python,json,api,weather,forecast,Python,Json,Api,Weather,Forecast,我希望你做得很好。 我正试图从这个网站“solcast.com.au”获取太阳辐射值。。我已经阅读了他们的API文档并在这里进行了介绍,并且应用了以下代码: import requests url = 'https://api.solcast.com.au/world_radiation/forecasts?latitude= -33.865143&longitude=151.209900&api_key=MYAPI' res = requests.get(url) data

我希望你做得很好。 我正试图从这个网站“solcast.com.au”获取太阳辐射值。。我已经阅读了他们的API文档并在这里进行了介绍,并且应用了以下代码:

import requests
url = 'https://api.solcast.com.au/world_radiation/forecasts?latitude=   -33.865143&longitude=151.209900&api_key=MYAPI'
res = requests.get(url)
data = res.json()
forecast = data["forecasts"]["ghi"]

print('forecastss: {} dgree'.format(forecast))
因此,当我运行代码时,会出现以下错误:

Traceback (most recent call last):
  File "/home/pi/Desktop/solcastoo.py", line 5, in <module>
    data = res.json()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 897, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/lib/python3/dist-packages/simplejson/__init__.py", line 518, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 370, in decode
    obj, end = self.raw_decode(s)
  File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 400, in raw_decode
    return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
回溯(最近一次呼叫最后一次):
文件“/home/pi/Desktop/solcastoo.py”,第5行,在
data=res.json()
json格式的文件“/usr/lib/python3/dist packages/requests/models.py”,第897行
返回complexjson.load(self.text,**kwargs)
文件“/usr/lib/python3/dist-packages/simplejson/_-init__.py”,第518行,装入
返回\u默认\u解码器。解码
文件“/usr/lib/python3/dist packages/simplejson/decoder.py”,第370行,在decode中
obj,end=self.raw_解码
文件“/usr/lib/python3/dist packages/simplejson/decoder.py”,第400行,原始解码
返回self.scan_一次(s,idx=_w(s,idx.end())
simplejson.errors.JSONDecodeError:预期值:第1行第1列(字符0)

非常感谢您的帮助。

正如John提到的,您需要在请求中指定您愿意接收的格式。 您可以通过向请求中添加标题来完成此操作:

导入请求
url='1〕https://api.solcast.com.au/world_radiation/forecasts?latitude=   -33.865143和经度=151.209900和api_键=api_键'
res=requests.get(url,headers={'Content-Type':'application/json'})
data=res.json()
预测=数据[“预测”][0][“ghi”]
打印('forecastss:{}dgree'.格式(预测))
在他们的文档中,他们为您提供了两个附加选项:

  • 接受“HTTP请求头,例如”​应用程序/json​” 对于​JSON
  • “格式”查询字符串,例如​格式=json​” 对于​JSON
  • 端点后缀文件扩展名,例如“​forecast.json​” 对于​JSON
  • 第二个选项不起作用,至少对于这个特定的请求是这样。第三个选项起作用,但有点奇怪

    第一个选项在API中更常用,但也要准备好使用其他选项

    PS他们在文档中说'headers={'Accepts':'application/json'} 应该会给出期望的结果,所以我认为在其他端点也有可能


    祝你好运。

    res.json()
    是空的。文档中说有几种方法可以要求以json格式返回数据,而你没有这样做。因此返回的数据不是json格式。@John Gordon,你能帮我一下吗..我对这些API还是新手..非常感谢你的帮助