Автоматическое обновление данных переменных из Интернета на языке программирования Python [duplicate]

Вам нужно использовать класс JsonNode и ObjectMapper из библиотеки jackson для извлечения узлов вашего дерева Json. Добавьте следующую зависимость в свой pom.xml, чтобы получить доступ к классам Джексона.

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.5</version>
</dependency>

Вы должны попробовать следующий код: это

import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

Class JsonNodeExtractor{

public void convertToJson(){


String filepath = "c:\\data.json";
ObjectMapper mapper = new ObjectMapper();
JsonNode node =  mapper.readTree(filepath);

// create a JsonNode for every root or subroot element in the Json String
JsonNode pageInfoRoot = node.path("pageInfo");

// Fetching elements under 'pageInfo'
String pageName =  pageInfoRoot.path("pageName").asText();
String pagePic = pageInfoRoot.path("pagePic").asText();

// Now fetching elements under posts
JsonNode  postsNode = node.path("posts");
String post_id = postsNode .path("post_id").asText();
String nameOfPersonWhoPosted = postsNode 
.path("nameOfPersonWhoPosted").asText();

}
}
137
задан George Stocker 27 February 2014 в 22:12
поделиться

7 ответов

Спасибо за все ваши ответы.

Free currencyconverterapi:

  • Цены обновляются каждые 30 минут
  • Никакой учетной записи не требуется

Образец конверсии URL: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_USD&compact=y


Для потомков они вместе с другими возможными ответами:

  1. Yahoo finance API Discontinued 2017-11-06

    Снято с 2017-11-06 с сообщением Оно имеет обратим наше внимание на то, что эта услуга используется в нарушение Условий использования Yahoo. Таким образом, услуга прекращается. Для всех будущих рынков и исследований данных о ценных бумагах, пожалуйста, обратитесь к finance.yahoo.com. Запрос: http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDINR=X Этот CSV использовался плагином jQuery под названием Карри . Карри с тех пор (2017-08-29) перешел на использование fixer.io вместо этого из-за проблем стабильности. Может быть полезно, если вам нужно больше, чем просто CSV.
  2. ( благодаря Keyo ). Язык запросов Yahoo позволяет сразу получить целую кучу валют в XML или JSON. Данные обновляются вторым (тогда как Европейский центральный банк имеет данные дня) и останавливается в выходные дни. Не требует никакой регистрации. http://query.yahooapis.com/v1/public/yql?q=select * от yahoo.finance.xchange, где пара в («USDEUR», «USDJPY», «USDBGN», «USDCZK», «USDDKK», «USDGBP», «USDHUF», «USDLTL», «USDLVL», «USDPLN», «USDRON», «USDSEK», «USDCHF», «USDNOK», «USDHRK», «USDRUB», «USDTRY», «USDAUD», «USDBRL», «USDCAD», «USDCNY», «USDHKD», «USDIDR», «USDILS», «USDINR», «USDKRW», «USDMXN», «USDMYR», «USDNZD», USDPHP "," USDSGD "," USDTHB "," USDZAR "," USDISK ") & amp; env = store: //datatables.org/alltableswithkeys Вот построитель запросов YQL, где вы можете протестировать запрос и скопируйте URL-адрес: http://developer.yahoo.com/yql/console/?q=show%20tables&env=store://datatables.org/alltableswithkeys#h=select%20*%20from%20yahoo .finance.xchange% 20 где% 20pair% 20in% 20% 28% 22USDMXN% 22% 2C% 20% 22USDCHF% 22% 29
  3. API с открытым исходным кодом API

    Бесплатно для личного использования (1000 просмотров в месяц) Изменение «базы» (от «USD») запрещено в бесплатном аккаунте. Требуется регистрация. Запрос: http://openexchangerates.org/latest.json Ответ:
    {
      "disclaimer": "This data is collected from various providers ...",
      "license": "all code open-source under GPL v3 ...",
      "timestamp": 1323115901,
      "base": "USD",
      "rates": {
          "AED": 3.66999725,
          "ALL": 102.09382091,
          "ANG": 1.78992886,
          // 115 more currency rates here ...
      }
    }
    
  4. documentlayer API

    Free Plan за 1000 месячных хитов Изменение «источника» (от «доллара США») запрещено на бесплатной учетной записи. Требуется регистрация. Документация: currencylayer.com/documentation JSON Response:
    {
      [...]
      "timestamp": 1436284516,
      "source": "USD",
      "quotes": {
          "USDAUD": 1.345352401,
          "USDCAD": 1.27373397,
          "USDCHF": 0.947845302,
          "USDEUR": 0.91313905,
          "USDGBP": 0.647603397,
          // 168 world currencies
          }
      }
    
  5. Fixer.io API (данные Европейского центрального банка)

    Бесплатный план для 1000 ежемесячных обращений Изменение «источника» (от «доллара США») запрещено в бесплатном аккаунте. Требуется регистрация. Эта конечная точка API устарела и перестанет работать 1 июня 2018 года. Для получения дополнительной информации посетите: https://github.com/fixerAPI/fixer#readme) Веб-сайт: http://fixer.io/ Пример запроса: http://api.fixer.io/latest?base=USD Собирает только одно значение за каждый день
  6. Канал Европейского центрального банка

    Документы: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html#dev Запрос: http://www.ecb.int /stats/eurofxref/eurofxref-daily.xml Ответ XML:
    <Cube>
      <Cube time="2015-07-07">
      <Cube currency="USD" rate="1.0931"/>
      <Cube currency="JPY" rate="133.88"/>
      <Cube currency="BGN" rate="1.9558"/>
      <Cube currency="CZK" rate="27.100"/>
    </Cube>
    
  7. Запрос на обменный курс Google (разобранный) В настоящее время недоступен:

    Запрос: http : //rate-exchange.appspot.com/currency? from = USD & amp; to = EUR Ответ:
    {"to": "EUR", "rate": 0.76911244400000001, "from": "USD"}
    
    Вот еще один JSON (P) API на основе API Google (источник: этот комментарий ):http://rate-exchange.appspot.com/currency?from=USD&to=EUR&q=1 Оригинал ответ на Райан .
716
ответ дан 36 revs, 25 users 25% 28 August 2018 в 04:50
поделиться

Вот некоторые API-интерфейсы обмена с примером PHP.

[ Open Exchange Rates API ]

Предоставляет 1000 запросов в месяц бесплатно. Вы должны зарегистрироваться и получить идентификатор приложения. Базовая валюта USD для бесплатной учетной записи. Проверьте поддерживаемые валюты и документацию .

// open exchange URL // valid app_id * REQUIRED *
$exchange_url = 'https://openexchangerates.org/api/latest.json';
$params = array(
    'app_id' => 'YOUR_APP_ID'
);

// make cURL request // parse JSON
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => $exchange_url . '?' . http_build_query($params),
    CURLOPT_RETURNTRANSFER => true
));
$response = json_decode(curl_exec($curl));
curl_close($curl);

if (!empty($response->rates)) {
    // convert 150 USD to JPY ( Japanese Yen )
    echo $response->rates->JPY * 150;
}

150 USD = 18039.09015 JPY

[ API уровня валюты ]

Предоставляет 1000 запросов в месяц бесплатно. Вы должны зарегистрироваться и захватить ключ доступа. Таможенная базовая валюта не поддерживается в бесплатной учетной записи. Проверьте документацию .

$exchange_url = 'http://apilayer.net/api/live';
$params = array(
    'access_key' => 'YOUR_ACCESS_KEY',
    'source' => 'USD',
    'currencies' => 'JPY',
    'format' => 1 // 1 = JSON
);

// make cURL request // parse JSON
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => $exchange_url . '?' . http_build_query($params),
    CURLOPT_RETURNTRANSFER => true
));
$response = json_decode(curl_exec($curl));
curl_close($curl);

if (!empty($response->quotes)) {
    // convert 150 USD to JPY ( Japanese Yen )
    echo '150 USD = ' . $response->quotes->USDJPY * 150 . ' JPY';
}

150 USD = 18036.75045 JPY

13
ответ дан hd1 28 August 2018 в 04:50
поделиться

Вы можете попробовать geelugin

Помимо геолокации, выполняемой по IP (но IP-адрес IP-адреса провайдера, поэтому не так точен), они также возвращают валюты и имеют валюту конвертер: см. примеры.

Они обновили 111 валют.

1
ответ дан Jan Doggen 28 August 2018 в 04:50
поделиться

Yahoo имеет функцию YQL, чтобы сразу получить целую кучу валют в XML или JSON. Я заметил, что данные обновляются в тот момент, когда ЕЦБ имеет данные дня и останавливается в выходные.

http://query.yahooapis.com/v1/public / yql? q = выберите * из yahoo.finance.xchange, где пара в («USDEUR», «USDJPY», «USDBGN», «USDCZK», «USDDKK», «USDGBP», «USDHUF», «USDLTL», «USDLVL», «USDPLN», «USDRON», «USDSEK», «USDCHF», «USDNOK», «USDHRK», «USDRUB», «USDTRY», «USDAUD», «USDBRL», «USDCAD», «USDCNY», «USDKK», «USDIDR», «USDILS», «USDINR», «USDKRW», «USDMXN», «USDMYR», «USDNZD», «USDPHP», «USDSGD», «USDTHB», «USDZAR», USDISK ") & amp; env = store: //datatables.org/alltableswithkeys

Вот их построитель запросов, где вы можете протестировать запрос и скопировать URL:

[g1 http://developer.yahoo.com/yql/console/?q=show%20tables&env=store://datatables.org/alltableswithkeys#h=select%20*%20from%20yahoo.finance]. Xchange% 20where% 20pair% 20in% 20% 28% 22USDMXN% 22% 2C% 20% 22USDCHF% 22% 29

52
ответ дан Keyo 28 August 2018 в 04:50
поделиться

Для всех новичков, которые ищут некоторый намек на конвертацию валют, взгляните на эту ссылку. Datavoila

Это помогло очень много о моем собственном проекте на C #. На всякий случай сайт исчезнет, ​​я добавлю код ниже. Просто добавьте приведенные ниже шаги в свой собственный проект. Извините за форматирование.

const string fromCurrency = "USD";
const string toCurrency = "EUR";
const double amount = 49.95;
// For other currency symbols see http://finance.yahoo.com/currency-converter/
// Clear the output editor //optional use, AFAIK
Output.Clear();

// Construct URL to query the Yahoo! Finance API
const string urlPattern = "http://finance.yahoo.com/d/quotes.csv?s={0}{1}=X&f=l1";
string url = String.Format(urlPattern, fromCurrency, toCurrency);

// Get response as string
string response = new WebClient().DownloadString(url);

// Convert string to number
double exchangeRate =
    double.Parse(response, System.Globalization.CultureInfo.InvariantCulture);

// Output the result
Output.Text = String.Format("{0} {1} = {2} {3}",
                            amount, fromCurrency,
                            amount * exchangeRate, toCurrency);
26
ответ дан Linus Caldwell 28 August 2018 в 04:50
поделиться

Если вам нужен бесплатный и простой API для конвертации одной валюты в другую, попробуйте free.currencyconverterapi.com .

Отказ от ответственности, я являюсь автором веб-сайта, и я использую его для одного из моих других веб-сайтов.

Услуга может использоваться даже для коммерческих приложений, но не дает никаких гарантий. По соображениям производительности значения обновляются только каждый час.

Образец конверсии URL: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_PHP&compact= ultra , который вернет json-форматированное значение, например { "EUR_PHP": 60.849184}

34
ответ дан Manny 28 August 2018 в 04:50
поделиться

Европейский центральный банк (ЕЦБ) также имеет самый надежный бесплатный канал, о котором я знаю. Он содержит около 28 валют и обновляется по крайней мере ежедневно.

http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml

Дополнительные форматы и инструменты см. на странице справки ECB: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html

52
ответ дан Ryan 28 August 2018 в 04:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: