В настоящее время у меня есть эта проблема. Когда я добавляю запрос на сервер (например, https://127.0.0.1:5000/?property=Ward&propertyValue=Ely%20North%20Ward, где Ward = Ely North Ward), JSON возвращает значения. Однако, если бы я хотел отфильтровать палаты, которые содержат символ «&» (например, палата = Ely & Christchurch Ward), он не возвращает никаких значений, только { type: «FeatureCollection», features: [ ] }.
Что я могу сделать, чтобы функция считывала символы «&» и возвращала правильные значения из того, что я ввел?
Код ниже:
from flask import Flask, escape, request
import requests
import json
def graphqlwfs(url):
url = "https://osdatahubapi.os.uk/OSFeaturesAPI/wfs/v1?service=wfs&request=GetCapabilities"
queryString = "&typenames=osfeatures:BoundaryLine_PollingDistrict&outputformat=geoJSON"
request_json = request.get_json(silent=True)
request_args = request.args
if request_json and 'property' in request_json:
property = request_json['property']
elif request_args and 'property' in request_args:
property = request_args['property']
else:
property = ""
if request_json and 'propertyValue' in request_json:
propertyValue = request_json['propertyValue']
elif request_args and 'propertyValue' in request_args:
propertyValue = request_args['propertyValue']
else:
propertyValue = ""
filterString = "&filter=<Filter><PropertyIsEqualTo><PropertyName>" + str(property) + "</PropertyName><Literal>" + str(propertyValue) + "</Literal></PropertyIsEqualTo></Filter>"
if property == "":
filterString = ""
if propertyValue == "":
filterString = ""
newUrl = str(url.replace("GetCapabilities", "GetFeature") + queryString + filterString)
response = requests.get(newUrl)
features = response.json()
return features
```
Возможно, вам придется экранировать амперсанд в URL-адресе. Обычно & имеет особое значение в URL-адресах, поэтому вы не видите возврата. Просто замените его на %26 — person jlsr10 schedule 20.11.2019
возвращает ошибку декодирования json — person jlsr10 schedule 20.11.2019
Могу ли я что-нибудь сделать, чтобы остановить перенастройку ошибки декодирования? — person jlsr10 schedule 20.11.2019
