Geting error using python 3.5 : a_token = r.json() mention below

Ned Batchelder ned at nedbatchelder.com
Tue Dec 20 10:37:48 EST 2016


On Tuesday, December 20, 2016 at 7:28:47 AM UTC-5, Akbar Shaikh wrote:
> import io
> import csv
> import glob
> import os.path
> import requests
> import subprocess
> import urllib.request
> import json
> import time
> import xlwt
> import xlrd
> import datetime
> from datetime import date, timedelta
>> def main():
> """ Run the whole toolchain for all accounts. """
> _clean()
>> payload = {'client_id':'xxxx' ,
> 'client_secret':'xxxx',
> 'grant_type':'client_credentials'}
> headers1 = {
> 'Content-Type':'application/json'
> }
>> r = requests.post('https://auth.smaato.com/v2/auth/token/ HTTP/1.1',params=payload,auth=('username', 'password'),headers = headers1,)
>> a_token = r.json()
>> ACCESSTOKEN = a_token['access_token']
> print ('Bearer ' + ACCESSTOKEN)
>> content2 = {
> 'client_id':'xxxx' ,
> 'client_secret':'xxxx',
> 'grant_type':'client_credentials',
> 'Authorization': 'Bearer' + ACCESSTOKEN,
> 'POST':'https://api.smaato.com/v1/reporting/ HTTP/1.1',
> 'Content-Type':'application/json',
> 'Host': 'api.smaato.com',
> 'criteria':{"dimension":"ApplicationId","child":"null"},
> 'kpi': {"clicks : true"},
> 'period':{"period_type":"fixed","start_date":"2016年12月7日","end_date":"2016年12月7日"}
> }
>> headers2 = {
> 'client_id':'xxxx' ,
> 'client_secret':'xxxx',
> 'grant_type':'client_credentials',
> 'Authorization': 'Bearer' + ACCESSTOKEN,
> 'Username':'Username',
> 'Password':'Password',
> 'Content-Type': 'application/json',
> 'Host': 'api.smaato.com',
> }
> s = requests.post('https://api.smaato.com/v1/reporting/',params=content2,auth=('username', 'password'), headers = headers2)
> print(s.content)
>> def _clean():
> """ Cleans old data files.
> """
> for f in glob.glob('./Numbers *.csv'):
> os.remove(f)
>> if '__main__' == __name__:
> main()
> -------------------------------------------------------------------------
> Error: Traceback (most recent call last):
> File "C:\Users\xxxx\Desktop\Smaato Akbar.py", line 66, in <module>
> main()
> File "C:\Users\xxxx\Desktop\Smaato Akbar.py", line 28, in main
> a_token = r.json()
> File "C:\Users\xxx\AppData\Local\Programs\Python\Python35-32\lib\site-packages\requests\models.py", line 850, in json
> return complexjson.loads(self.text, **kwargs)
> File "C:\Users\xxxx\AppData\Local\Programs\Python\Python35-32\lib\site-packages\simplejson\__init__.py", line 516, in loads
> return _default_decoder.decode(s)
> File "C:\Users\xxxx\AppData\Local\Programs\Python\Python35-32\lib\site-packages\simplejson\decoder.py", line 374, in decode
> obj, end = self.raw_decode(s)
> File "C:\Users\xxxx\AppData\Local\Programs\Python\Python35-32\lib\site-packages\simplejson\decoder.py", line 404, in raw_decode
> return self.scan_once(s, idx=_w(s, idx).end())
> simplejson.scanner.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

That error means you are trying to decode an empty string. Most likely,
your request failed, and there's a status code that will give you a clue
as to why it failed. You should check the success of the request before
trying to use the results.
>From the docs (http://docs.python-requests.org/en/master/user/quickstart/#json-response-content):

> To check that a request is successful, use r.raise_for_status() or check
> r.status_code is what you expect.

--Ned.


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /