从 None Python 提高 JSONDecodeError("Expecting value", s, err.value)

raise JSONDecodeError("Expecting value", s, err.value) from None Python

我有时会遇到这个问题。但它总是解决的。这一次不可能找到解决办法。同一主题有很多 post,但我的情况没有解决方案。 我正在尝试从我的 api 获取数据。它有时有效(对于没有 none 值的数据)并且对于包含 None 值的数据,它不起作用。我认为问题出在 none 值上。我有这个错误

Exception Type: JSONDecodeError
Exception Value:    
Expecting value: line 1 column 75 (char 74)

感谢任何帮助。

@api_view(['GET'])
def edges_of_a_network(request, pk):
    try:
        roadnetwork = RoadNetwork.objects.get(pk=pk)
    except RoadNetwork.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    else:
        edges = Edge.objects.filter(network=roadnetwork)
        edges = str(list(edges.values("edge_id", "name",
            "length", "speed", "lanes"))).replace("'",'"')
        edges = json.loads(edges)
        edges = json.dumps(edges, indent=2)

    if request.method == 'GET':
        return HttpResponse(edges, content_type="application/json")

截图

我终于找到了解决问题的方法。我添加这一行 edges = edges.replace('None', "null")。我将 None values 替换为 null values

@api_view(['GET'])
def edges_of_a_network(request, pk):
    try:
        roadnetwork = RoadNetwork.objects.get(pk=pk)
    except RoadNetwork.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    else:
        edges = Edge.objects.filter(network=roadnetwork)
        edges = str(list(edges.values("edge_id", "name",
            "length", "speed", "lanes"))).replace("'",'"')
        edges = edges.replace('None', "null")
        edges = json.loads(edges)
        edges = json.dumps(edges, indent=2)

    if request.method == 'GET':
        return HttpResponse(edges, content_type="application/json")