Ich arbeite mit csvfiles. Mein Ziel ist es, ein JSON-Format mit csvfile Informationen zu schreiben. Eigen, ich willSchreiben Sie Json-Format mit Pandas-Serie und DataFrame
Beispiel ein ähnliches Format wie miserables.json erhalten:
{"source": "Napoleon", "target": "Myriel", "value": 1},
Nach den Informationen, die ich das Format haben wäre:
[
{
"source": "Germany",
"target": "Mexico",
"value": 1
},
{
"source": "Germany",
"target": "USA",
"value": 2
},
{
"source": "Brazil",
"target": "Argentina",
"value": 3
}
]
jedoch mit dem Code I die Ausgabe verwendet sieht wie folgt:
[
{
"source": "Germany",
"target": "Mexico",
"value": 1
},
{
"source": null,
"target": "USA",
"value": 2
}
][
{
"source": "Brazil",
"target": "Argentina",
"value": 3
}
]
Null
Quelle muss sei Deutschland. Dies ist eines der Hauptprobleme, denn es gibt mehr Städte mit diesem Problem. Außerdem sind die Informationen korrekt. Ich möchte nur einige Listen innerhalb des Formats entfernen und null in das richtige Land ersetzen.
Dies ist der Code, den ich mit pandas
und collections
verwendet habe.
csvdata = pandas.read_csv('file.csv', low_memory=False, encoding='latin-1')
countries = csvdata['country'].tolist()
newcountries = list(set(countries))
for element in newcountries:
bills = csvdata['target'][csvdata['country'] == element]
frquency = Counter(bills)
sourceTemp = []
value = []
country = element
for k,v in frquency.items():
sourceTemp.append(k)
value.append(int(v))
forceData = {'source': Series(country), 'target': Series(sourceTemp), 'value': Series(value)}
dfForce = DataFrame(forceData)
jsondata = dfForce.to_json(orient='records', force_ascii=False, default_handler=callable)
parsed = json.loads(jsondata)
newData = json.dumps(parsed, indent=4, ensure_ascii=False, sort_keys=True)
# since to_json doesn´t have append mode this will be written in txt file
savetxt = open('data.txt', 'a')
savetxt.write(newData)
savetxt.close()
Alle Vorschläge zur Lösung dieses Problems sind zu schätzen!
Dank
Können Sie einige Zeilen der CSV-Eingabedatei angeben? –