Я новичок в JSON. Мой код заключается в извлечении данных с веб-сайта, для которого требуется ключ API. Добыв информацию. Я пытаюсь получить информацию, закодированную в JSON, через этот формат (вот образец):
[{"number":31705,"name":"31705 - CHAMPEAUX (BAGNOLET)","address":"RUE DES CHAMPEAUX (PRES DE LA GARE ROUTIERE) - 93170 BAGNOLET","latitude":48.8645278209514,"longitude":2.416170724425901},{"number":10042,"name":"10042 - POISSONNIÈRE - ENGHIEN","address":"52 RUE D'ENGHIEN / ANGLE RUE DU FAUBOURG POISSONIERE - 75010 PARIS","latitude":48.87242006305313,"longitude":2.348395236282807}]
Как получить доступ к различным данным в коде JSON? Вот код, который я придумал:
import requests
reponse=requests.get('https://api.jcdecaux.com/vls/v1/station ... e}&api_key HTTP/1.1')
Я считаю, что на мой запрос сформулирован ответ, который находится в «папке ответа», отправленной веб-сайтом на мой компьютер:
print(reponse.headers)
print(reponse(2,/'latitude')
Я пытаюсь получить доступ к информации о широте в каждом элементе кода JSON: цифра 2 представляет второй элемент списка, а широта — имя значения, к которому я пытаюсь получить доступ. элемент списка JSON. Но у меня это не получается. Ошибка, которую я получаю, является синтаксической.
Как ее исправить? Я хотел бы получить доступ ко всему значению каждой строки каждого члена объекта «ответ».
ОБНОВЛЕНИЕ № 1:
Мой новый код:
import json
import requests
reponse=requests.get('https://api.jcdecaux.com/vls/v1/station ... 9d5406b3a0} HTTP/1.1')
data = json.loads(response.content)
print(data)
Однако я получаю сообщение об ошибке:
Traceback (most recent call last):
File "/Users/someone/Desktop/TIPE 2016:17/Programme TIPE 2016:2017.py", line 27, in
data = json.loads(response.content)
File "/Users/someone/miniconda3/lib/python3.5/json/__init__.py", line 312, in loads
s.__class__.__name__))
TypeError: the JSON object must be str, not 'bytes'
ОБНОВЛЕНИЕ № 2:
мой новый код:
import json
import requests
reponse=requests.get('https://api.jcdecaux.com/vls/v1/station ... 9d5406b3a0} HTTP/1.1')
data = response.json()
latitude = data[2]['latitude']
Однако я получаю сообщение об ошибке:
Traceback (most recent call last):
File "/Users/someone/Desktop/TIPE 2016:17/Programme TIPE 2016:2017.py", line 30, in
latitude = data[2]['latitude']
KeyError: 2
Означает ли это, что ответ пуст?
ОБНОВЛЕНИЕ № 3:
reponse.content
Ответ следующий:
b'{ "error" : "Unauthorized" }'
В чем проблема?
ОБНОВЛЕНИЕ № 4:
мой новый код:
reponse=requests.get('https://api.jcdecaux.com/vls/v1/station ... 9d5406b3a0} HTTP/1.1')
data = json.loads(response.content.decode('utf-8'))
print(reponse.headers)
print(reponse.content)
Результат:
{'Content-Length': '48', 'Content-Encoding': 'gzip', 'Server': 'Apache-Coyote/1.1', 'Date': 'Fri, 23 Sep 2016 19:39:25 GMT', 'Connection': 'close', 'Content-Type': 'application/json'}
b'{ "error" : "Unauthorized" }'
поэтому ответ на мой запрос не пустой, но у меня нет разрешения на доступ к нему. Как я могу решить эту проблему?
ОКОНЧАТЕЛЬНОЕ ОБНОВЛЕНИЕ:
Новый рабочий код:
import json
import requests
r = requests.get('https://api.jcdecaux.com/vls/v1/station ... 9d5406b3a0')
response_json = r.json()
print (response_json['name'])
и результат:
31705 - CHAMPEAUX (BAGNOLET)
Подробнее здесь: https://stackoverflow.com/questions/396 ... -json-file
Доступ к данным из файла JSON ⇐ Python
Программы на Python
1734281844
Anonymous
Я новичок в JSON. Мой код заключается в извлечении данных с веб-сайта, для которого требуется ключ API. Добыв информацию. Я пытаюсь получить информацию, закодированную в JSON, через этот формат (вот образец):
[{"number":31705,"name":"31705 - CHAMPEAUX (BAGNOLET)","address":"RUE DES CHAMPEAUX (PRES DE LA GARE ROUTIERE) - 93170 BAGNOLET","latitude":48.8645278209514,"longitude":2.416170724425901},{"number":10042,"name":"10042 - POISSONNIÈRE - ENGHIEN","address":"52 RUE D'ENGHIEN / ANGLE RUE DU FAUBOURG POISSONIERE - 75010 PARIS","latitude":48.87242006305313,"longitude":2.348395236282807}]
Как получить доступ к различным данным в коде JSON? Вот код, который я придумал:
import requests
reponse=requests.get('https://api.jcdecaux.com/vls/v1/stations/{station_number}?contract={contract_name}&api_key HTTP/1.1')
Я считаю, что на мой запрос сформулирован ответ, который находится в «папке ответа», отправленной веб-сайтом на мой компьютер:
print(reponse.headers)
print(reponse(2,/'latitude')
Я пытаюсь получить доступ к информации о широте в каждом элементе кода JSON: цифра 2 представляет второй элемент списка, а широта — имя значения, к которому я пытаюсь получить доступ. элемент списка JSON. Но у меня это не получается. Ошибка, которую я получаю, является синтаксической.
Как ее исправить? Я хотел бы получить доступ ко всему значению каждой строки каждого члена объекта «ответ».
ОБНОВЛЕНИЕ № 1:
Мой новый код:
import json
import requests
reponse=requests.get('https://api.jcdecaux.com/vls/v1/stations/{31705}?contract={Paris}&apiKey={0617697a9795f803697de4b9abf9759d5406b3a0} HTTP/1.1')
data = json.loads(response.content)
print(data)
Однако я получаю сообщение об ошибке:
Traceback (most recent call last):
File "/Users/someone/Desktop/TIPE 2016:17/Programme TIPE 2016:2017.py", line 27, in
data = json.loads(response.content)
File "/Users/someone/miniconda3/lib/python3.5/json/__init__.py", line 312, in loads
s.__class__.__name__))
TypeError: the JSON object must be str, not 'bytes'
ОБНОВЛЕНИЕ № 2:
мой новый код:
import json
import requests
reponse=requests.get('https://api.jcdecaux.com/vls/v1/stations/{31705}?contract={Paris}&apiKey={0617697a9795f803697de4b9abf9759d5406b3a0} HTTP/1.1')
data = response.json()
latitude = data[2]['latitude']
Однако я получаю сообщение об ошибке:
Traceback (most recent call last):
File "/Users/someone/Desktop/TIPE 2016:17/Programme TIPE 2016:2017.py", line 30, in
latitude = data[2]['latitude']
KeyError: 2
Означает ли это, что ответ пуст?
ОБНОВЛЕНИЕ № 3:
reponse.content
Ответ следующий:
b'{ "error" : "Unauthorized" }'
В чем проблема?
ОБНОВЛЕНИЕ № 4:
мой новый код:
reponse=requests.get('https://api.jcdecaux.com/vls/v1/stations/{31705}?contract={Paris}&apiKey={0617697a9795f803697de4b9abf9759d5406b3a0} HTTP/1.1')
data = json.loads(response.content.decode('utf-8'))
print(reponse.headers)
print(reponse.content)
Результат:
{'Content-Length': '48', 'Content-Encoding': 'gzip', 'Server': 'Apache-Coyote/1.1', 'Date': 'Fri, 23 Sep 2016 19:39:25 GMT', 'Connection': 'close', 'Content-Type': 'application/json'}
b'{ "error" : "Unauthorized" }'
поэтому ответ на мой запрос не пустой, но у меня нет разрешения на доступ к нему. Как я могу решить эту проблему?
ОКОНЧАТЕЛЬНОЕ ОБНОВЛЕНИЕ:
Новый рабочий код:
import json
import requests
r = requests.get('https://api.jcdecaux.com/vls/v1/stations/31705?contract=Paris&apiKey=0617697a9795f803697de4b9abf9759d5406b3a0')
response_json = r.json()
print (response_json['name'])
и результат:
31705 - CHAMPEAUX (BAGNOLET)
Подробнее здесь: [url]https://stackoverflow.com/questions/39667039/accessing-data-from-a-json-file[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия