我在 VSCode 中运行代码并得到 TypeError: Object of type set is not JSON serializable。我刚开始学习编码,实在不懂,google了一下,也不知道JSON可序列化是什么意思。
from solcx import compile_standard
import json
# get the contract content
with open("./SimpleStorage.sol", "r") as file:
simple_storage_file = file.read()
# compile the contract
compiled_sol = compile_standard(
{
"language": "Solidity",
"sources": {"SimpleStorage.sol": {"content": simple_storage_file}},
"settings": {
"outputSelection": {
"*": {
"*": {"abi", "metadata", "evm.bytecode", "evm.bytecode.sourceMap"}
}
}
},
},
solc_version="0.6.0",
)
# creat json file dump the comiled code in it to make it more readable.
with open("compiled_code.json", …Run Code Online (Sandbox Code Playgroud) 因此,我使用以下代码来记录以下代码drf-spectacular:
from rest_framework import response
from rest_framework.decorators import api_view, permission_classes
from rest_framework.response import Response
from rest_framework.permissions import AllowAny
from rest_framework import status
from drf_spectacular.utils import extend_schema, OpenApiParameter
def passcode_generator:
return 0 # placeholder
@extend_schema(
parameters=[
OpenApiParameter(name="callsign", required=True, type=str),
],
description="Get an APRS-IS passcode for a given callsign",
)
@api_view(["POST"])
@permission_classes([AllowAny])
def get_passcode(request):
callsign = request.data.get("callsign", None)
if callsign is None:
raise Response(
{"error": "Missing callsign"}, status=status.HTTP_400_BAD_REQUEST
)
return Response({"passcode": passcode_generator(callsign)})
Run Code Online (Sandbox Code Playgroud)
我不明白该怎么做是如何记录响应。也就是说,有OpenApiResponse但drf_spectacular.utils文档非常少。如何使用该系统记录 API 的响应?