我需要此JSON中的某些值(minPrice
和multiplierUp
):
exchange_info = requests.get('https://api.binance.com/api/v3/exchangeInfo').json()
这里有一个简化:
J = {
"symbols": [
{
"symbol":"ETHBTC",
"orderTypes":[
"LIMIT",
"LIMIT_MAKER",
],
"filters":[
{
"filterType":"PRICE_FILTER",
"minPrice":"0.00000100",
},
{
"filterType":"PERCENT_PRICE",
"multiplierUp":"5",
},
],
},
{
"symbol":"LTCBTC",
"orderTypes":[
"LIMIT",
"LIMIT_MAKER",
],
"filters":[
{
"filterType":"PRICE_FILTER",
"minPrice":"0.00000100",
},
{
"filterType":"PERCENT_PRICE",
"multiplierUp":"5",
},
],
}
]
}
直接从这个JSON获取LTCBTC
的minPrice
不是很好:
get_filters = lambda symbol: \
next((s['filters'] for s in exchange_info['symbols'] \
if s['symbol'] == symbol))
get_filter = lambda symbol, filter: \
next((f for f in get_filters(symbol) if f['filterType'] == filter))
minPrice = lambda symbol: \
get_filter(symbol, 'PRICE_FILTER')['minPrice']
这段代码效率低下,我必须为包含此嵌套模式的每个数据结构编写类似的代码
一次性转换会更干净。将任何包含的dict列表转换为dict的东西
然而,由于我有一个目录列表嵌套在另一个目录列表中,我现在将复杂性推到我的转换器中
干净的接口可能看起来像这样(伪代码):
minPrice = process(J) \
.symbols(symbol='ETHBTC') \
.filters(filterType='PRICE_FILTER') \
.minPrice
我想这是一条走得很好的路。设计这个的好方法是什么
目前没有回答
相关问题 更多 >
编程相关推荐