从json文件中获取最高值

时间:2015-02-13 05:45:55

标签: python json python-3.x

所以我的python游戏中的用户有货币存储在JSON txt文件中。它看起来像这样:

["user1", "300"]  
["user2", "500"]  
["user3", "45"]  
["user4", "250"]  
["user5", "750"]

现在,我想做什么。我想创建一个方法,它可以以列表的形式返回前3个最富有的用户,如下所示:

["user5 : 750", "user2 : 500", "user1 : 300"]

我该怎么做?谢谢。

1 个答案:

答案 0 :(得分:0)

第一件事 - 该文件无效JSON。但是,个别行是。如果你真的只关心前3行,这就变得非常容易......

步骤如下:

  1. 打开文件
  2. 使用json
  3. 将每一行转换为python列表
  4. 使用heapq.nlargest
  5. 取n个最大值
  6. join使用': '的子列表获取您想要的格式。
  7. 代码:

    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])