【问题标题】:getting top values from json file从 json 文件中获取最高值
【发布时间】:2015-02-13 05:45:54
【问题描述】:

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

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

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

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

我该怎么做?谢谢。

【问题讨论】:

  • 该文件不是有效的 JSON ...

标签: python json python-3.x


【解决方案1】:

第一件事——该文件不是有效的 JSON。但是,个别行是。如果你真的只关心前 3 行,这变得很容易......

步骤如下:

  1. 打开文件
  2. 使用 json 将每一行转换为 python 列表
  3. 使用heapq.nlargest取最大的n个
  4. 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])

【讨论】:

  • 这不会返回价值最高的前 3 名用户。
猜你喜欢
  • 2020-10-06
  • 2022-06-17
  • 2013-09-25
  • 2015-12-26
  • 1970-01-01
  • 2023-01-10
  • 2021-07-23
  • 1970-01-01
  • 2022-01-03
相关资源
最近更新 更多