2017-09-07 118 views
1

我正在使用poloniex交易者API获取实时市场报价信息。它在控制台上完美运行。当我要求市场报价回报我得到这{'last': '0.07269671', 'high24hr': '0.07379970', 'quoteVolume': '71582.56540639', 'isFrozen': '0', 'lowestAsk': '0.07277290', 'percentChange': '-0.00551274', 'id': 148, 'low24hr': '0.07124645', 'highestBid': '0.07269671', 'baseVolume': '5172.41552885'}写入CSV文件Python3问题

问题是它只存储项目名称/列表名称,如 - low24hr, lowestAsk, highestBid etc。没有自己的价值一样 - low24hr : 0.07124645

polo = Poloniex() 
ticker_data = (polo('returnTicker')['BTC_ETH']) 

out = csv.writer(open("myfile.csv","w"), delimiter=',',quoting=csv.QUOTE_ALL,) 
out.writerow(ticker_data) 
print(ticker_data) 

这里是我的CSV文件看起来喜欢 - ImageView

ImageView

+0

欢迎来到SO。您的帖子中没有足够的信息可以帮助我们。请阅读[问]和[mcve]。 – wwii

回答

1

你的问题是,out.writerow(ticker_data)只接收字典的关键字并将它们写入文件。尝试使用csv.DictWriter

with open('myfile.csv', 'w', newline='') as csv_file: 
    # Pass the keys of the `ticker_data` as the fieldnames. 
    writer = csv.DictWriter(csv_file, fieldnames=ticker_data, quoting=csv.QUOTE_ALL) 
    # Write the fieldnames. 
    writer.writeheader() 
    # Write the values. 
    writer.writerow(ticker_data) 
+1

作为初学者,这对我更有意义朋友(拥抱) – NUMB

1
with open('my_file.csv', 'w') as f: 
    for key, value in ticker_data.items(): f.write('{0},{1}\n'.format(key, value)) 

here

+0

是的,它的工作... – NUMB

+1

如果你不想创建一个列表,不要使用列表理解。只需使用正常的循环。 – skrx

+1

好吧,我把它编辑为 –