Спецификация в ответе сервера портит анализ JSON
Я пытаюсь написать скрипт Python, который отправляет часть JSON на веб-сервер и возвращает часть JSON. Я собрал несколько разных примеров в StackOverflow и думаю, что у меня есть кое-чтов основном работает.
import urllib2
import json
url = "http://foo.com/API.svc/SomeMethod"
payload = json.dumps( {'inputs': ['red', 'blue', 'green']} )
headers = {"Content-type": "application/json;"}
req = urllib2.Request(url, payload, headers)
f = urllib2.urlopen(req)
response = f.read()
f.close()
data = json.loads(response) # >> response
'\xef\xbb\xbf[\r\n {\r\n ... Valid JSON here
Итак, если я вручную удаляю первые три байта:
data = json.loads(response[3::])
Все работает иresponse
превращается в словарь.
Мой вопрос:
Кажется глупым, чтоjson
barfs, когда вы даете ему спецификацию. Есть ли что-то другое, что я могу сделать сurllib
илиjson
библиотека, чтобы дать ему знать, что это строка UTF8 и обрабатывать его как таковой? Я неЯ не хочу вручную вырезать первые 3 байта.