我想从烧瓶路线返回五个变量。看来,无论我如何格式化它们,除了看起来像JSON的字符串外,其中两个都不会返回任何内容。
我的烧瓶路线看起来像这样
@app.route('/mapcreator/<lat>/<lng>', methods=['GET', 'POST'])
def receive_coords(lat, lng):
lat = float(lat)
lng = float(lng)
point = (lat,lng)
map1 = somefunction(point)
number = ((somefunction(point))[0])
featureCount = ((somefunction(point))[1])
map2 = ((amb.somefunction(point))[2])
response = make_response(jsonify(map1=map1, number=number, featureCount=featureCount, map2=map2, point=point))
response.headers['content-type'] = 'application/json'
return response
number,point,map1作为json对象正确返回。 Python中每个变量的类型:
这是后端中每个变量的处理方式:
map1back = mplleaflet.fig_to_geojson(fig=ax.figure)
打印为geojson,看起来像字典map2back = df_to_geojson(poi_df, col); map2back = json.dumps(poiGJ)
看起来像是标准的geojson
featureCount = all_features['feature'].value_counts(); featureCount = featureCount.to_json()
看起来像标准的json
如果将这些类型更改为dict,我将得到
500内部服务器错误。
一切就绪后,他们将这样登录浏览器控制台:
featureCount:"{"parking":67,"bicycle_parking":32,"bench":20,"p.....
map2:"{"type": "FeatureCollection", "features": [{"geometry": {"type": "Point", "coo.....
它们不读为“ Object>”,而是读为JSON字符串。
我在这里尝试了所有东西,但我真的很沮丧。对于这两个响应对象,我看不到任何不同,也无法使它们成为真正的JSON响应。
预先感谢一百万!
答案 0 :(得分:0)
我解决了这个问题。
response = make_response(jsonify(map1=map1, number=number,
featureCount=json.loads(featureCount),
map2=json.loads(map2), point=point))
必须将json与字符串(而不是JSON对象)类似json。熊猫只创建json样式字符串。