如何使用YahooAPI获取汇率,但无需繁琐地列出所有主要的&;十字架?
我需要雅虎API,它将返回所有国家的汇率对国家的基础上,我通过 例如,我将通过美元作为基数,然后雅虎API应该返回我所有其他国家的汇率 我在谷歌上搜索,我发现以下雅虎API如何使用YahooAPI获取汇率,但无需繁琐地列出所有主要的&;十字架?,api,yahoo-api,currency-exchange-rates,Api,Yahoo Api,Currency Exchange Rates,我需要雅虎API,它将返回所有国家的汇率对国家的基础上,我通过 例如,我将通过美元作为基数,然后雅虎API应该返回我所有其他国家的汇率 我在谷歌上搜索,我发现以下雅虎API http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ( "USDEUR", "USDJPY", "USDBGN", "USDCZK",
http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange
where pair in ( "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"
)&env=store://datatables.org/alltableswithkeys
在这个API中,我必须为每个国家逐个编写货币对
我不想一个接一个地写货币对
我想通过美元,并返回我所有其他国家的汇率
请给我发送符合我要求的Yahoo API查询字符串。最简单的方法是准备一个静态转换器,负责返回预组装列表,该转换器将返回(发送)Yahoo API查询字符串 一个简单的实体模型示例是:
string sendMeTheYahooApiQuerySTRING( const string aCurrency1 = "USD",
bool &ErrorFLAG = True
){
switch( aCurrency1 ){
case "USD": ErrorFLAG = False; return( "https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ( "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" )&env=store://datatables.org/alltableswithkeys" );
case "GBP": ErrorFLAG = False; return( "https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ( "GBPEUR", "GBPJPY", "GBPBGN", "GBPCZK", "GBPDKK", "USDGBP", ... )&env=store://datatables.org/alltableswithkeys" );
case "JPY": ErrorFLAG = False; return( "https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ( "GBPJPY", "JPYBGN", ... )&env=store://datatables.org/alltableswithkeys" );
case ... : ErrorFLAG = False; return( ... );
case default: return( "" );
}
设计用于以后在:
bool anErrorFLAG = False;
...
string aQuerySTRING = sendMeTheYahooApiQuerySTRING( "DKK", anErrorFLAG );
assert( !anErrorFLAG );
...
这种方法依赖于Y!侧面处理,详见API规范:
<execute>
var pairs = [];
for each (var p in pair.toString().replace(/\s+/g,'').split(','))
pairs.push(p.toUpperCase() + '=X');
var q = "select * from csv where url='http://download.finance.yahoo.com/d/quotes.csv?s="+ pairs.join(',') +
"&f=snl1d1t1ab'" + " and columns='Symbol,Name,Rate,Date,Time,Ask,Bid'",
results = y.query(q),
rates = <rates/>,
rows=results.results.row;
for each (var row in rows) {
for each (var item in row.*)
row[item.localName()]=item.text().toString().replace(/"/g, '');
var tag = row.Symbol.text().toString().substr(0,6);
delete row.Symbol;
rates.rate += <rate id={tag}>{row.*}</rate>;
}
response.object = rates;
</execute>
其中包含以下简单数据:
"GBPJPY=X","GBP/JPY",146.7220
没有了那辆车!单独汇率的侧面重新打包。最简单的方法是准备一个静态转换器,负责返回预组装的列表,它将返回(发送)Yahoo API查询字符串 一个简单的实体模型示例是:
string sendMeTheYahooApiQuerySTRING( const string aCurrency1 = "USD",
bool &ErrorFLAG = True
){
switch( aCurrency1 ){
case "USD": ErrorFLAG = False; return( "https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ( "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" )&env=store://datatables.org/alltableswithkeys" );
case "GBP": ErrorFLAG = False; return( "https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ( "GBPEUR", "GBPJPY", "GBPBGN", "GBPCZK", "GBPDKK", "USDGBP", ... )&env=store://datatables.org/alltableswithkeys" );
case "JPY": ErrorFLAG = False; return( "https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ( "GBPJPY", "JPYBGN", ... )&env=store://datatables.org/alltableswithkeys" );
case ... : ErrorFLAG = False; return( ... );
case default: return( "" );
}
设计用于以后在:
bool anErrorFLAG = False;
...
string aQuerySTRING = sendMeTheYahooApiQuerySTRING( "DKK", anErrorFLAG );
assert( !anErrorFLAG );
...
这种方法依赖于Y!侧面处理,详见API规范:
<execute>
var pairs = [];
for each (var p in pair.toString().replace(/\s+/g,'').split(','))
pairs.push(p.toUpperCase() + '=X');
var q = "select * from csv where url='http://download.finance.yahoo.com/d/quotes.csv?s="+ pairs.join(',') +
"&f=snl1d1t1ab'" + " and columns='Symbol,Name,Rate,Date,Time,Ask,Bid'",
results = y.query(q),
rates = <rates/>,
rows=results.results.row;
for each (var row in rows) {
for each (var item in row.*)
row[item.localName()]=item.text().toString().replace(/"/g, '');
var tag = row.Symbol.text().toString().substr(0,6);
delete row.Symbol;
rates.rate += <rate id={tag}>{row.*}</rate>;
}
response.object = rates;
</execute>
其中包含以下简单数据:
"GBPJPY=X","GBP/JPY",146.7220
没有了那辆车!个别汇率的侧面重新包装。可能重复的可能重复的