python - 当通过 APIView 类请求 GET 方法时,如何从 API 响应中删除 \n 或以适当的 JSON 格式获取响应
问题描述
当我在邮递员中调用Google 的 Distance Matrix
API 时,我得到了正确的 JSON 响应。
API 端点
https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=Washington,DC&destinations=New+York+City,NY&key=[API KEY]
回复
{
"destination_addresses": [
"New York, NY, USA"
],
"origin_addresses": [
"Washington, DC, USA"
],
"rows": [
{
"elements": [
{
"distance": {
"text": "228 mi",
"value": 367435
},
"duration": {
"text": "3 hours 43 mins",
"value": 13385
},
"status": "OK"
}
]
}
],
但是当我在我的 DRF 中使用APIView类做同样的事情时,我得到了一些奇怪\n
的回应。
APIView
import requests
from rest_framework.views import APIView
from rest_framework.response import Response
class TestView(APIView):
def get(self, request, format=None):
data={}
data['destinations'] =[
'Nashik+Maharashtra',
'Mumbai+Maharashtra',
'Nagpur+Maharashtra',
'Malegaon+Maharashtra'
]
data['origins'] = "Pune+Maharashtra"
params ={
"units":"metrix",
"origins":data['origins'],
"destinations":data['destinations'],
"key":"AIzaSyDqf9R6mFSDrwqjM7iXv289o9KEdvEEmM8"
}
response = requests.get("https://maps.googleapis.com/maps/api/distancematrix/json?", params)
return Response(response.text)
回复
"{\n \"destination_addresses\" : [ \"Nashik, Maharashtra, India\" ],\n \"origin_addresses\" : [ \"Pune, Maharashtra, India\" ],\n \"rows\" : [\n {\n \"elements\" : [\n {\n \"distance\" : {\n \"text\" : \"212 km\",\n \"value\" : 212479\n },\n \"duration\" : {\n \"text\" : \"4 hours 19 mins\",\n \"value\" : 15531\n },\n \"status\" : \"OK\"\n }\n ]\n }\n ],\n \"status\" : \"OK\"\n}\n"
如何获得适当的 JSON 响应。
解决方案
使用response.json()
而不是response.text
推荐阅读
- sql - SQL - 按不同列的值为空的列对两行进行分组
- add-on - 面临创建插件、Visual Studio、G1ANT 的问题
- implicit - Gekko 和 CoolProp
- php - Phpmyadmin 显示 mbstring 丢失
- c# - 我们什么时候应该在 C# 中使用默认接口方法?
- c# - 为什么简单的 await Task.Delay(1) 可以实现并行执行?
- postgresql - Postgres 查询优化器在按条件添加另一个订单后生成错误计划
- visual-studio - std::shared_ptr 的读取访问冲突
- sql - SQLSERVER 中区分大小写的唯一标识符问题
- java - 在 Thymleaf 中创建动态 ID