python调取api接口数据插入数据库报错nonetype object is not subscriptable

问题遇到的现象和发生背景

背景:通过api接口获取数据,部分成功,中间报错

问题相关代码,请勿粘贴截图
import requests
import json
import time
import pandas as pd
import psycopg2

t = time.time()
datetime = int(t)

headers = {'content-type': 'application/json'}
data = {'usercode': "xxx", 'pwd_md5': "xxx", 'timestamp': datetime}
url = 'xxx'
response = requests.post(url, headers=headers, data=json.dumps(data))
data = json.loads(response.text)['result']

conn = psycopg2.connect(host='xxx', port=xxx, database='xxx', user='xxx', password='xxx')
cursor = conn.cursor()

sesql = """select equipment_model from dim.dim_mes_device_online where equipment_model is not null
 and equipment_ip is not null group by equipment_model  ;"""
cursor.execute(sesql)
dataSum = []
print(dataSum)
results = cursor.fetchall()
for row in results:
    name = row[0]
    headers1 = {'content-type': 'application/json', 'X-Access-Token': data}
    data1 = {'deviceModel': name, 'offset': 0, 'count': "true", 'timestamp': datetime}
    url1 = 'xxx'
    response1 = requests.post(url=url1, headers=headers1, data=json.dumps(data1))
    count = json.loads(response1.text)['result']['count']
    if count == 0:
        continue
    else:
        num = int(count / 3000)
    print(num)
    i = 0
    while i <= num:
        headers1 = {'content-type': 'application/json', 'X-Access-Token': data}
        data1 = {'deviceModel': name, 'offset': i * 3000, 'count': "true", 'timestamp': datetime}
        url1 = 'xxx'
        response1 = requests.post(url=url1, headers=headers1, data=json.dumps(data1))
        data1 = json.loads(response1.text)['result']['values']
        print(i)
        dataSum = dataSum + data1
        i = i + 1
        print(dataSum)
        df = pd.DataFrame(dataSum)
        list_tup = [tuple(r) for r in df.to_numpy()]
        sub_sql = str(list_tup)[1:-1]
        if sub_sql is not None:
            sql = "insert into public.mes_api_data_tmp values {}".format(sub_sql)
            sql = sql.replace("None", "NULL")
            sql = sql.replace(", nan,", ", NULL,")
            sql = sql.replace("ns=1;i=", "")
            sql = sql.replace("ns=0;i=", "")
        else:
            continue
        print(sql)
        trsql = "TRUNCATE TABLE public.mes_api_data_tmp"
        cursor.execute(trsql)
        cursor.execute(sql)
        conn.commit()

# #关闭数据库链接source_db.close()
conn.cursor()
运行结果及报错内容

运行结果:NoneType object is not subscriptable

我的解答思路和尝试过的方法

知道是count = json.loads(response1.text)['result']['count']出错了,但是不知道如何修改?

把你的报错截图一下看下,看看具体报错在哪一行
错误意思是None对象不能被调用

NoneType object is not subscriptable
的意思是,空值不可以进行切片操作
count = json.loads(response1.text)['result']['count']
这样连续执行操作是不好的编程习惯
你应该把步骤拆开,每一步都要做非空判断
-=-=-=
你以为json.loads(response1.text)的结果一定是个二维字典,可是它有可能是个none
也可能只是个一维字典,你从里面获取到的result关键字的value值是个none