0
Ich bin Anfänger in Python.Konvertieren von Textdaten in Json-Format
Ich habe die Textdaten in Json Format
Hier konvertieren ist die Probe Textdaten aus der Tabellenstruktur unter extrahiert:
Metric - Column 1 ,
Design Project - Column 2 ,
Design Target* - Column 3 ,
Median Property* - Column 4
Metric Design Project Design Target* Median Property*
Source EUI (kBtu/ft²) 3.1 Not Available 127.9
Site EUI (kBtu/ft²) 1.0 Not Available 40.7
Source Energy Use (kBtu) 314.0 Not Available 12,793.0
Site Energy Use (kBtu) 100.0 Not Available 4,074.2
Energy Cost ($) 2,000.00 Not Available 81,484.00
Total GHG Emissions (Metric Tons CO2e) 0.0 Not Available 0.5
ENERGY STAR score (1-100) Not Available 75 50
Hier ist der Code unter:
import csv
import json
with open('output.txt', 'r') as csvfile: # Opens file
filereader = csv.reader(csvfile, delimiter=' ')
i = 0
header = []
out_data = []
for row in filereader:
row = [elem for elem in row if elem]
if i == 0:
i+=2
row[1:3] = [row[1]+" "+row[2]] # Design Project key
row[2:4] = [row[2]+" "+row[3]] # Design Target key
row[3:5] = [row[3]+" "+row[4]] # Median Property*
header = row
else:
row[0:3] = [row[0]+" "+row[1]+" "+row[2]] # Metric
if len(row) == 5: # check conditions for better parse
row[1:2] = [row[1]] # Design Project value
row[2:4] = [row[2]+" "+row[3]] # Design Target
_dict = {}
for elem, header_elem in zip(row, header):
_dict[header_elem] = elem
out_data.append(_dict)
print json.dumps(out_data)
Oben Code, der für die ersten beiden Zeilen der Daten korrekt funktioniert. Hier
ist die Ausgabe des Codes,
[{"Metric": "Source EUI (kBtu/ft\u00b2)", "Design Target*": "Not Available", "Median Property*": "127.9", "Design Project": "3.1"}, {"Metric": "Site EUI (kBtu/ft\u00b2)", "Design Target*": "Not Available", "Median Property*": "40.7", "Design Project": "1.0"}]
Wie kann ich die kompletten Daten in ein JSON-Format zu machen? Hier
Ihre Daten nicht konsistent ist. Und Zeile = [Element für Element in Zeile, wenn Element] 'wird eine andere Anzahl von Elementen für die dritte Datenzeile haben als für die zweite Datenzeile. Deshalb funktioniert es nicht. Wahrscheinlich müssen Sie die Extraktion in mehreren Fällen trennen, z. wenn 'len (row) == 5' eine Umwandlung machen, und wenn' len (row) == 6' andere Konvertierung durchführen – PerunSS
Aber wenn ich schreibe IF ELSe Bedingung werfen Wurf @PerunSS – venkat
Können Sie hinzufügen, was Sie versucht haben ? – PerunSS