将输出获取为json而不是数组

2024-10-01 22:25:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将输入与我创建的名称数组相匹配。下面是它的代码:

>>> from fuzzywuzzy import process
>>> names = ["Adam Gilchrist","Adam Barbar","Adam lobiof","Jaffer Wilson","Janet Wilson","Jane Cold"]
>>> process.extract('adamgilchrist',names)
[('Adam Gilchrist', 84), ('Adam lobiof', 50), ('Jane Cold', 50), ('Adam Barbar', 40), ('Janet Wilson', 30)]

我得到的只是一系列的名字和信心

我想将输出显示为json,如下所示:

{
  "results": [
    {
      "name": "Adam Gilchrist",
      "confidence": 84
    },
    {
      "name": "Adam lobiof",
      "confidence": 50
    },
    {
      "name": "Jane Cold",
      "confidence": 50
    },
    {
      "name": "Adam Barbar",
      "confidence": 40
    },
    {
      "name": "Janet Wilson",
      "confidence": 30
    }
  ]
}

我在Windows10系统上使用Python2.7


Tags: 代码name名称names数组processconfidenceadam
1条回答
网友
1楼 · 发布于 2024-10-01 22:25:34

您可以将元组解包与列表理解结合使用,以实现以下目的:

...
result = process.extract('adamgilchrist',names)
result = [{"name": name, "confidence": confidence} for name, confidence in result]

导致

[{'confidence': 84, 'name': 'Adam Gilchrist'}, {'confidence': 50, 'name': 'Adam lobiof'}, {'confidence': 50, 'name': 'Jane Cold'}, {'confidence': 40, 'name': 'Adam Barbar'}, {'confidence': 30, 'name': 'Janet Wilson'}]

您只需稍作调整即可获得最终结果(如有必要):

{'result': results}

那又是什么呢

{'result': [
    {'confidence': 84, 'name': 'Adam Gilchrist'},
    {'confidence': 50, 'name': 'Adam lobiof'}, 
    {'confidence': 50, 'name': 'Jane Cold'}, 
    {'confidence': 40, 'name': 'Adam Barbar'}, 
    {'confidence': 30, 'name': 'Janet Wilson'}]
}

相关问题 更多 >

    热门问题