Mtgox

通過 API 獲取 MtGox 匯率的最簡單方法?

  • November 5, 2013

我想做一個簡單的應用程序,每分鐘刷新一次,通過 Mtgox 告訴我目前匯率,但我在解釋某些 API 返回的 JSON 時遇到問題:

  • Mtgox 的快速程式碼返回此 JSON。問題是,我必須檢索的價值是什麼?有很多,我不明白,也找不到合適的文件。
  • Bitcoincharts 的 API 有Markets Data 端點,它以“mtgoxUSD”的符號返回我想要的市場,但它告訴我最新交易的日期時間,最後一次買/賣,但不告訴我匯率最新交易

我錯過了什麼嗎?

JSON 可能有點難以閱讀,因為它通常意味著在沒有諸如空格和換行符之類的字元的情況下提供人類可讀的字元。

這是快速自動收報機的輸出:

{
 "result":"success",
 "data":{
   "last_local":{
     "value":"136.87303",
     "value_int":"13687303",
     "display":"$136.87",
     "display_short":"$136.87",
     "currency":"USD"
   },
   "last":{
     "value":"136.87303",
     "value_int":"13687303",
     "display":"$136.87",
     "display_short":"$136.87",
     "currency":"USD"
   },
   "last_orig":{
     "value":"136.87303",
     "value_int":"13687303",
     "display":"$136.87",
     "display_short":"$136.87",
     "currency":"USD"
   },
   "last_all":{
     "value":"136.87303",
     "value_int":"13687303",
     "display":"$136.87",
     "display_short":"$136.87",
     "currency":"USD"
   },
   "buy":{
     "value":"136.10500",
     "value_int":"13610500",
     "display":"$136.11",
     "display_short":"$136.11",
     "currency":"USD"
   },
   "sell":{
     "value":"136.87250",
     "value_int":"13687250",
     "display":"$136.87",
     "display_short":"$136.87",
     "currency":"USD"
   },
   "now":"1381085718504609"
 }
}

“結果”項目總是保證在那裡,但當然根據呼叫是否成功而具有不同的內容。“數據”元素包含一系列價格,每個名稱都表示其價格。

大多數解釋語言(如 Ruby、PHP 和 Python)中的 JSON 解析器將 JSON 解析為雜湊或字典。您需要“數據”鍵的“最後一個”鍵的“值”鍵的值。

這是用於 v2 程式碼的 Ruby 中的單行版本:

ruby -e '%w(open-uri json).each{|b| require b}; open("http://data.mtgox.com/api/2/BTCUSD/money/ticker_fast") {|d| puts JSON.parse(d.read)["data"]["last"]["value"]}'

或者更易讀的東西:

require "open-uri" 
require "json"

open("http://data.mtgox.com/api/2/BTCUSD/money/ticker_fast") do |d| 
 json = JSON.parse(d.read)
 puts json["data"]["last"]["value"]
end

這是舊程式碼的 Ruby 單行版本:

ruby -e '%w(open-uri json).each{|b| require b}; open("https://mtgox.com/api/1/BTCUSD/ticker") {|d| puts JSON.parse(d.read)["return"]["last"]["value"]}'

或者更易讀的東西:

require "open-uri" 
require "json"

open("https://mtgox.com/api/1/BTCUSD/ticker") do |d| 
 json = JSON.parse(d.read)
 puts json["return"]["last"]["value"]
end

好的,這應該回答你的問題,

import urllib2, json

x = float(json.loads(urllib2.urlopen('https://mtgox.com/api/1/BTCUSD/ticker').read())['return']['last']['value'])

print x

這將返回比特幣 MTGox 美元價格的最後一個值

引用自:https://bitcoin.stackexchange.com/questions/10594