首页 > 解决方案 > 试图从响应创建一个 json 但我得到 json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

问题描述

我制作了这个 python 脚本,当我尝试从响应中创建 json() 以收集 access_token 时,它通过从 googleapis 交换刷新令牌来获取访问令牌我得到 JSONDecodeError

这是我的代码:

import json
from os import access
import requests
import pandas as pd

tokens_csv = pd.read_csv('./credentials/tokens.csv')
client_ids = []
client_secrets = []
refresh_tokens = tokens_csv['refresh_tokens']
for i in range(2):
    f = open('./credentials/{}.json'.format(i+70))
    data = json.load(f)
    client_id = str(data['web']['client_id'])
    client_ids.append(client_id)
    client_secret = data['web']['client_secret']
    client_secrets.append(client_secret)

# def get_access_token(client_id,client_secret):
def get_access_token():
    access_tokens = []
    url = "https://googleapis.com/oauth2/v2/token"
    for i in range(len(client_ids)):
        qparams = {
            "grant_type":"refresh_token",
            "client_id": client_ids[i],
            "client_secret": client_secrets[i],
            "refresh_token": refresh_tokens[i]
        }
        response = requests.request("POST", url, params=qparams)
        obj = response.json()
        access_token = obj["access_token"]
        access_tokens.append(access_token)
    return access_tokens
get_access_token()

继承人的错误:

  File "C:\Users\Mohan Krishna\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

标签: pythonjsongoogle-apipython-requests

解决方案


可能有两个原因。

  1. 其中@Abdul Niyas PM 列出。
  2. 您可能需要使用 json.dumps() 将 qparams 转换为 JSON

推荐阅读