2017-07-12 3 views
0

Ich habe eine Liste von JSON-Objekte wie folgt aus:Lesefehler beim Lesen Json Obect

json_data = [{"Timestamp":"4/1/2017 7:00","Maximum Demand (KVA)":123,"Consumption (KVAh)":271,"Power Factor":0.86},{"Timestamp":"4/1/2017 8:00","Maximum Demand (KVA)":119,"Consumption (KVAh)":260,"Power Factor":0.85},{"Timestamp":"4/1/2017 9:00","Maximum Demand (KVA)":125,"Consumption (KVAh)":264,"Power Factor":0.9}] 

ich json.loads versucht, aber es einen Fehler wirft:

data = json.loads(json_data) 

versucht, dies auch:

with open(json_data) as data_file: 
     data = json.load(data_file) 

Fehler:

TypeError: Expected String or Unicode

Jede Hilfe wäre erwünscht

+1

Ihr json_data Objekt ist bereits Python-Objekt, nicht json string, warum Willst du es analysieren? –

+0

_Warum_ versuchen Sie, eine Datei von einem JSON-Objekt zu öffnen? –

+0

Ihre json_data muss eine Zeichenfolge sein, wenn Sie json.loads verwenden möchten – SteeBono

Antwort

0

jsons.loads transformiert einen mit String versehenen json in ein Python-Objekt. json.dumps transformiert ein Python-Objekt in einen String, der den entsprechenden json enthält. Hier sollten Sie json.dumps verwenden. data = json.dumps (json_data)

0

Ich hoffe, das Ihnen helfen kann ...

import json 
json_data = [{"Timestamp":"4/1/2017 7:00","Maximum Demand (KVA)":123,"Consumption (KVAh)":271,"Power Factor":0.86}, 
      {"Timestamp":"4/1/2017 8:00","Maximum Demand (KVA)":119,"Consumption (KVAh)":260,"Power Factor":0.85}, 
      {"Timestamp":"4/1/2017 9:00","Maximum Demand (KVA)":125,"Consumption (KVAh)":264,"Power Factor":0.9}] 


data = json.dumps(json_data) 
print data 

OUTPUT:

[{"Power Factor": 0.86, "Timestamp": "4/1/2017 7:00", "Consumption (KVAh)": 271, "Maximum Demand (KVA)": 123}, {"Power Factor": 0.85, "Timestamp": "4/1/2017 8:00", "Consumption (KVAh)": 260, "Maximum Demand (KVA)": 119}, {"Power Factor": 0.9, "Timestamp": "4/1/2017 9:00", "Consumption (KVAh)": 264, "Maximum Demand (KVA)": 125}] 
Verwandte Themen