2017-07-17 8 views
0

Ich versuche, die Eingabe mit dem Array von Namen, die ich erstellt habe übereinstimmen. Hier ist der Code dafür:Ausgabe als JSON anstelle von Array

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

Was ich bekomme ist nur eine Reihe von Namen und Vertrauen.

Ich möchte wie dies die Ausgabe als json etwas anzuzeigen:

{ 
    "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 
    } 
    ] 
} 

Ich verwende Python 2.7 auf Windows 10 sysytem

Antwort

0

Sie Tupel Auspacken in Kombination mit einer Liste Verständnis für diese verwenden:

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

, die in

Ergebnisse
[{'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'}] 

Sie können Ihr Endergebnis (falls erforderlich) mit geringfügigen Anpassungen erreichen:

{'result': results} 

wiederum die

{'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'}] 
} 
+0

Es funktionierte dann ist .. Danke ... :) –

Verwandte Themen