0

インターネット上の JSON ファイルから為替レートを自動的に取得する通貨コンバーターを作成しようとしています。ファイルにアクセスできない場合は、レートを手動で入力できるようにプログラムを設計したいと考えています。これまでのところ、この部分を除いてすべてが機能しています。JSONファイルからデータを正常に取得しますが、手動で入力すると空白に表示されます. 私は Python と Tkinter に関してはまったくの初心者なので、単純なものが欠けていても驚かないでしょう。

注: 一番上のウィンドウの前の最初の部分は、実際のコードのコピーです。ウィンドウ自体は、私が抱えている問題を示すための単なるモックアップです。

from Tkinter import *

#**Import Bitcoin market data.**
import json
import urllib2

try:
    btcMarketsJSON = urllib2.urlopen('http://api.bitcoincharts.com/v1/markets.json')
    marketData = json.load(btcMarketsJSON)
    mtGoxUSDdata = [i for i in marketData if i['symbol'] == 'mtgoxUSD']
    bitstampUSDdata = [i for i in marketData if i['symbol'] == 'bitstampUSD']
    mtGoxUSDask = mtGoxUSDdata[0]['ask']
    bitstampUSDask = bitstampUSDdata[0]['ask']
    btcMarketsJSON.close()

except:
    import tkMessageBox as MessageBox
    import tkSimpleDialog as SimpleDialog

    root = Tk()
    root.withdraw()

    if MessageBox.askyesno("Error", "Market data could not be retrieved. Exchange rate will have to be entered manually. Continue anyway?"):
        manualAsk = SimpleDialog.askfloat(" ", "Enter an ask price. This number will be used for all exchanges.")
        mtGoxUSDask = manualAsk
        bitstampUSDask = mtGoxUSDask
    else:
        import sys
        sys.exit()

#**Main Window**      
top = Tk()
top.title("Bitcoin/US Dollar Currency Converter")
top.geometry("+300+300")

selectedAsk = DoubleVar()
selectedAsk.set(mtGoxUSDask)

label = Label(top, textvariable=selectedAsk)
quitButton = Button(top, text="Quit", command=top.destroy)
label.pack()
quitButton.pack()

top.mainloop()
4

1 に答える 1