如何解决?(语言-python)

'''
fiddler mock
'''
from unittest import mock
import unittest
import requests
import json

def post_request(url, data):
res = requests.post(url, data=data).json()
return res

添加商品信息

def addProduct(role, product):
# 如果是管理员
if (role == "0"):
print("这是管理员")
success_url = 'http://127.0.0.1/addSuccess'
data = {
"role": "0",
"product": product
}
res = post_request(success_url, json.dumps(data, ensure_ascii=False))

else:
    print("这是普通用户")
    error_url = 'http://127.0.0.1/addError'
    data = {
        "role": "1",
        "product": product
    }
    res = post_request(error_url, json.dumps(data, ensure_ascii=False))
return res

if (name == 'main'):
post_url = 'http://127.0.0.1/login'
data = {
"name": "darl",
"age": "18"
}
print(type(data))
# json.dumps()----------dict->json
res = post_request(post_url, json.dumps(data, ensure_ascii=False))
print(res)
print(type(res))
role = res["data"]["role"]
print(role)
res1 = addProduct(role, "fruit")
print(res1)

报错如下
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

这个错误是你读取的内容不是json格式

def post_request(url, data):
res = requests.post(url, data=data)
print(res.text) #这样输出下看看读取的是什么内容
return res.json()

你直接传字典就好,不需要json.dumps
res = post_request(success_url, data)