问题描述
我一直在开发一个程序,该程序调用多个API,使结果在应用程序上可见,然后,我还必须跟踪结果,以便将它们进行比较以用于以后的功能。到目前为止,我已经尝试了许多方法,并且效果最好,但是当前代码存在的问题是,在应用程序上只能看到一个响应
import csv
with open('data.csv') as fp:
reader = csv.DictReader(fp)
res = {}
for row in reader:
res.setdefault(row['Level'],[]).append(int(row['ColumntoSum']))
with open('output.csv','w') as fw:
writer = csv.writer(fw)
writer.writerow(('Level','Column'))
for k,v in res.items():
writer.writerow((k,sum(v)))
}
解决方法
您的代码中有很多错别字...与我在评论中建议的使用Promise.all
的解决方案相比...如果您有任何疑问-问...
export default class GetRequest extends React.Component {
state = {
gemBTCask: null,gemBTCbid: null,gemETHask: null,gemETHbid: null
};
componentDidMount() {
Promise.all([
fetch('https://api.gemini.com/v1/pubticker/ethusd'),fetch('https://api.gemini.com/v1/pubticker/btcusd')
])
.then(([ethResponse,btcResponse]) =>
Promise.all([ethResponse.json(),btcResponse.json()])
)
.then(([ethData,btcData]) =>
this.setState({
gemETHask: ethData.ask,gemETHbid: ethData.bid,gemBTCask: btcData.ask,gemBTCbid: btcData.bid
})
)
.catch(error => {
console.error({ error });
});
}
render() {
const { gemBTCask,gemBTCbid,gemETHask,gemETHbid } = this.state;
return (
<div className="card text-center m-3">
<div className="card-body">gemini BTC bid: $: {gemBTCbid}</div>
<div className="card-arm">gemini BTC ask: $: {gemBTCask}</div>
<div className="card-ear">gemini ETC bid: $: {gemETHbid}</div>
<div className="card-leg">gemini ETC ask: $: {gemETHask}</div>
</div>
);
}
}
实时演示:https://stackblitz.com/edit/react-gwkh8s?file=src%2FApp.js