2017-09-19 1 views
1

Ich habe Python-Code wie folgt. jv_list wird von resultset retrieve von D.B. Abfrage.Wie zwei Elemente der Liste mit Python teilen

jv_list = list(result.get_points()) 
print(jv_list) 

Ich drucke jv_list und es gibt mir unten erwähnt Ausgabe.

[{u'in': u'19834', u'length-bytes': u'79923888', u'run-time': u'1h50m43.489993955s', u'time': u'2017-09-08T21:20:39.846582783Z'}] 

Wie kann ich Division Ergebnis erhalten, die eigentlich zweiten Wert durch den ersten Wert geteilt wird. zum. i.e. 79923888/ 19834

+0

Sie wollen das Ergebnis von 'length-Bytes/in'? –

Antwort

2

Wenn das, was Sie meinen

x = [{u'in': u'19834', u'length-bytes': u'79923888', u'run-time': u'1h50m43.489993955s', u'time': u'2017-09-08T21:20:39.846582783Z'}] 
for i in x: 
    print(float(i['length-bytes'])/float(i['in'])) 

Ergebnisse als

4029.64041544822 
1

Das können Sie nicht zuverlässig tun, Wörterbücher sind ungeordnet.
Mit dieser Datenstruktur müssen Sie die Elemente über ihre Schlüssel adressieren.

das ist jv_list[0]['length_bytes']/jv_list[0]['in'] für jedes Paar Elemente, die Sie durch einander teilen möchten.

+0

Angenommen, die Abfrage gibt nur eine Zeile zurück? – Ammad

+0

Wenn nur eine Zeile vorhanden ist, müssen Sie die Elemente immer noch mit dem Schlüssel adressieren. –

4

Versuchen Sie, diese Folge von Befehlen

>>> X = [{u'in': u'19834', u'length-bytes': u'79923888', u'run-time': u'1h50m43.489993955s', u'time': u'2017-09-08T21:20:39.846582783Z'}] 
>>> for x in X: 
...  x['answer'] = float(x['length-bytes'])/float(x['in']) 
... 
>>> X 
[{'in': '19834', 'length-bytes': '79923888', 'run-time': '1h50m43.489993955s', 'time': '2017-09-08T21:20:39.846582783Z', 'answer': 4029.64041544822}] 
1

Wenn Sie das Ergebnis von length-bytes/in möchten, können Sie diese Schlüssel verwenden und ihre Werte abrufen:

jv_list = [{u'in': u'19834', u'length-bytes': u'79923888', u'run-time': u'1h50m43.489993955s', u'time': u'2017-09-08T21:20:39.846582783Z'}] 

result = float(jv_list[0]['length-bytes'])/float(jv_list[0]['in']) 
print(result) # => 4029.64041544822 
1

Auf der Basis Ihrer Datenstruktur scheint es, würde dies sei die Antwort.

float(jv_list[0]['length-bytes'])/float(jv_list[0]['in']) 
Verwandte Themen