所以我的python游戏中的用户有货币存储在JSON txt文件中。它看起来像这样:
["user1", "300"]
["user2", "500"]
["user3", "45"]
["user4", "250"]
["user5", "750"]
现在,我想做什么。我想创建一个方法,它可以以列表的形式返回前3个最富有的用户,如下所示:
["user5 : 750", "user2 : 500", "user1 : 300"]
我该怎么做?谢谢。
答案 0 :(得分:0)
第一件事 - 该文件无效JSON。但是,个别行是。如果你真的只关心前3行,这就变得非常容易......
步骤如下:
heapq.nlargest
join
使用': '
的子列表获取您想要的格式。代码:
import heapq
import json
with open('your_file_name') as fin:
pairs = (json.loads(line) for line in fin)
largest_pairs = heapq.nlargest(3, pairs, key=lambda p: int(p[1]))
print([': '.join(pair) for pair in largest_pairs])