我已经根据值对字典进行了排序,当我打印它时,它就被排序了。但是,当我将其返回到烧瓶模块时,它会按字母顺序打印。 如何使其按值排序返回
或者我可以问一下,为什么会这样
api请求的响应如下所示
{
"bch_krw": {
"timestamp": 1559285555322,
"last": "513000",
"open": "523900",
"bid": "512100",
"ask": "513350",
"low": "476200",
"high": "540900",
"volume": "4477.20611753",
"change": "-10900",
"changePercent": "-2.08"
},
"fet_krw": {
"timestamp": 1559285607258,
...
},
...
}
如果有人想知道,我注意到api的音量有问题。而且,它是韩国语的
@ app.route('/volume')
def print_volume():
url = "https://api.korbit.co.kr/v1/ticker/detailed/all"
resp = requests.get(url)
obj = resp.json()
# print(obj)
total_vol = 0.0
for i in obj:
total_vol += float(obj[i]['volume'])
#obj = sorted(obj.items(), key=lambda x: x[1]['volume'], reverse=True)
print(obj)
dict_vol = {}
for i in obj:
dict_vol[i[0]] = i[1]['volume']
sorted_top_five = dict(
sorted(dict_vol.items(), key=lambda item: item[1], reverse=True))
print(sorted_top_five)
return sorted_top_five
将字典按字母顺序排列的原因是,从python dict类型到JSON类型的序列化在幕后进行,默认行为是按字母顺序排列dict键
因此,要按原样序列化dict,需要
json
模块。请参阅下面的代码片段相关问题 更多 >
编程相关推荐