Как прочитать результат JSON в Python3 - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь рассчитать обмен из США в доллары на бразильские реалы.

Я нашел REST API от центрального банка Бразилии.

Мой код Python получает API-возврат в формате JSON, например:

‹'@odata.context ':' https://was -p.bcnet.bcb.gov.br / olinda / servico / PTAX / versao / v1 / odata $ metadata # _CotacaoDolarDia (cotacaoVenda) ',' value ': [{' cotacaoVenda ': 3.8344}]} *

В моем коде Iможет изолировать эту часть результата "[{'cotacaoVenda': 3.8344}]", но я не могу выделить только значение "3.8344".

Следуйте моему коду:

# Cotação do Dólar V.01

import json
import requests

r = requests.get("https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoDolarDia(dataCotacao=@dataCotacao)?@dataCotacao='03-15-2019'&$top=1&$format=json&$select=cotacaoVenda")

if r.status_code == 200:
    cotacao = json.loads(r.content)
    print(cotacao['value'])

Любая идея, как я могу изолировать только "3.8344", содержащиеся в возвращении JSON?

Спасибо

1 Ответ

2 голосов
/ 17 марта 2019

Переменная cotacao, это список, в котором есть только один элемент. Таким образом, мы получаем к нему доступ с помощью индекса [0]. Этот объект является словарем, к которому мы можем получить доступ к его полям, используя их ключ:

import json
import requests

r = requests.get("https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoDolarDia(dataCotacao=@dataCotacao)?@dataCotacao='03-15-2019'&$top=1&$format=json&$select=cotacaoVenda")

if r.status_code == 200:
    cotacao = json.loads(r.content)
    print(cotacao['value'][0]['cotacaoVenda'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...