Rumah >pembangunan bahagian belakang >Golang >Skrip Kadar Bitcoin dalam Go
Dalam Memaparkan Output Skrip Python pada Panel Conky, saya mencadangkan menjalankan skrip Python pada panel Conky untuk memaparkan kadar pertukaran Bitcoin dalam USD dan BRL. Walau bagaimanapun, disebabkan penggunaan memori yang lebih tinggi daripada jangkaan untuk tugas asas sedemikian, saya menulis semula skrip dalam Go. Kini, binari yang disusun mengendalikan tugas. Pendekatan ini sesuai untuk pemula Go, menawarkan peluang untuk mempelajari pengendalian API dan pemformatan teks untuk nilai kewangan. Berikut ialah pecahan:
Kod lengkap ada di penghujung artikel ini.
package main import ( "encoding/json" "fmt" "io" "net/http" "strconv" "github.com/dustin/go-humanize" )
const ( apiURL = "https://economia.awesomeapi.com.br/json/last/BTC-USD,BTC-BRL" )
type CurrencyData struct { High string `json:"high"` Low string `json:"low"` } type APIResponse struct { BTCUSD CurrencyData `json:"BTCUSD"` BTCBRL CurrencyData `json:"BTCBRL"` }
Teg JSON (json:"tinggi") memetakan medan struct kepada kekunci JSON.
func formatCurrency(value string, prefix string) string { floatValue, err := strconv.ParseFloat(value, 64) if err != nil { return "N/A" } formattedValue := fmt.Sprintf("%s%s", prefix, humanize.FormatFloat("#,###.##", floatValue)) return formattedValue }
resp, err := http.Get(apiURL) if err != nil { writeError(err) return } defer resp.Body.Close() body, err := io.ReadAll(resp.Body) if err != nil { writeError(err) return }
var data APIResponse if err := json.Unmarshal(body, &data); err != nil { writeError(err) return }
usdAlta := formatCurrency(data.BTCUSD.High, "$$") usdBaixa := formatCurrency(data.BTCUSD.Low, "$$") brlAlta := formatCurrency(data.BTCBRL.High, "R$$") brlBaixa := formatCurrency(data.BTCBRL.Low, "R$$")
Memformatkan nilai yang disediakan API untuk paparan.
formattedData := fmt.Sprintf( "\n\n${color white}BTC - USD\n${color}${color green} High: ${color}${color white}%s\n${color red} Low: ${color}${color white}%s\n\n"+ "${color white}BTC - BRL\n${color}${color green} High: ${color}${color white}%s\n${color red} Low: ${color}${color white}%s\n", usdAlta, usdBaixa, brlAlta, brlBaixa, ) fmt.Println(formattedData)
Mencipta rentetan output akhir dengan nilai yang diformatkan.
func writeError(err error) { errMsg := fmt.Sprintf("Error: %v", err) fmt.Println(errMsg) }
Merakam ralat ke terminal.
Jalankan: pergi bina btc_data.go && ./btc_data.go
package main import ( "encoding/json" "fmt" "io" "net/http" "strconv" "github.com/dustin/go-humanize" )
Jika artikel ini membantu anda atau anda menikmatinya, pertimbangkan untuk menyumbang:
Atas ialah kandungan terperinci Skrip Kadar Bitcoin dalam Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!