Binance API:将 K 线/烛台数据存储到 .csv 文件

0 python export-to-csv binance

我正在尝试将一些.json数据从 API 写入 CSV 文件

我的代码:

from binance.client import Client
import config
import pandas as pd
import pandas_datareader as web
from pandas_datareader import data as dreader


client = Client(config.apiKey,config.apiSec)
print("Logged in")

symbol = 'BTCUSDT'

klines = client.get_historical_klines(symbol, Client.KLINE_INTERVAL_1WEEK, "1 Jan, 2017")


print(klines)

df = pd.read_json(klines)
df.to_csv(r'path')
Run Code Online (Sandbox Code Playgroud)

错误:

回溯(最近一次调用最后一次):文件“\OneDrive\Knowledge\Python\Binance API new\BTC-price-get.py”,第 19 行,位于 df = pd.read_json(klines) 文件“\AppData\Local\Programs” \Python\Python39\lib\site-packages\pandas\util_decorators.py”,第 199 行,在包装器中返回 func(*args, **kwargs) 文件“\AppData\Local\Programs\Python\Python39\lib\site- packages\pandas\util_decorators.py”,第 296 行,在包装器中返回 func(*args, **kwargs) 文件“\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\io\json_json.py ”,第 593 行,在 read_json filepath_or_buffer, _, 压缩,should_close = get_filepath_or_buffer( File "\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\io\common.py",第 243 行,在 get_filepath_or_buffer 中raise ValueError(msg) ValueError: 无效的文件路径或缓冲区对象类型: <class 'list'> PS \Python>

fba*_*dos 5

get_historical_klines()返回嵌套list的 ohlcv 值,而不是 json 字符串或 dict ( source )。因此,您不需要pandas. 请改用内置csv模块。

import csv
from binance.client import Client

SYMBOL = 'BTCUSDT'

# No API key/secret needed for this type of call
client = Client()

columns = [
    'open_time', 'open', 'high', 'low', 'close', 'volume',
    'close_time', 'quote_asset_volume', 'number_of_trades',
    'taker_buy_base_asset_volume', 'taker_buy_quote_asset_volume',
    'ignore'
]

klines = client.get_historical_klines(SYMBOL, Client.KLINE_INTERVAL_1WEEK, "1 Jan, 2017")

with open('output.csv', 'w') as f:
    write = csv.writer(f)
    write.writerow(columns)
    write.writerows(klines)

Run Code Online (Sandbox Code Playgroud)

output.csv(提炼):

open_time,open,high,low,close,volume,close_time,quote_asset_volume,number_of_trades,taker_buy_base_asset_volume,taker_buy_quote_asset_volume,ignore
1502668800000,4261.48000000,4485.39000000,3850.00000000,4086.29000000,2843.43142600,1503273599999,12021576.48265154,13134,2240.24924000,9482742.92094674,10125.41408414
1503273600000,4069.13000000,4453.91000000,3400.00000000,4310.01000000,4599.39662900,1503878399999,18978983.50987317,37826,1755.53026500,7173180.19744751,11456.95307303
1503878400000,4310.01000000,4939.19000000,4124.54000000,4509.08000000,4753.84337600,1504483199999,21581679.92866748,35717,1371.03442800,6237542.20612072,12653.02927308
1504483200000,4505.00000000,4788.59000000,3603.00000000,4130.37000000,6382.78774500,1505087999999,27307824.36893929,42372,2821.42273900,12120979.77068529,10431.32749057
1505088000000,4153.62000000,4394.59000000,2817.00000000,3699.99000000,8106.70512700,1505692799999,30026796.42861788,50423,3763.12845200,13956149.18844029,8391.64647834
1505692800000,3690.00000000,4123.20000000,3505.55000000,3660.02000000,5908.32335000,1506297599999,22501242.65454204,56785,2821.43888700,10711864.12380805,7915.33467487
1506297600000,3660.02000000,4406.52000000,3653.69000000,4378.48000000,5782.30542400,1506902399999,23750419.76839855,71484,2482.36136700,10200163.49185349,12307.06710083
1506902400000,4400.00000000,4658.00000000,4110.00000000,4640.00000000,4708.27295600,1507507199999,20366578.25125568,59658,2077.80349000,9008752.49455302,12341.69993665
1507507200000,4640.00000000,5922.30000000,4550.00000000,5709.99000000,7913.92583700,1508111999999,42038755.95644524,61638,4280.12726900,22483871.99105491,12726.86837082
1508112000000,5710.00000000,6171.00000000,5037.95000000,5950.02000000,12157.76944700,1508716799999,69446644.86619962,75969,5501.91240000,31411073.98003196,14069.26805535
1508716800000,5975.00000000,6189.88000000,5286.98000000,6169.98000000,13133.99457000,1509321599999,75229774.73890872,74778,5845.14325200,33499318.44481458,15033.66434266
1509321600000,6133.01000000,7590.25000000,6030.00000000,7345.01000000,11663.20964800,1509926399999,79517426.53915779,98387,5037.95081100,34445720.64501364,19065.20952449
Run Code Online (Sandbox Code Playgroud)

文档 Binance 烛台

使用 csv 模块