Um den Kontext festzulegen, muss ich eine CSV-Datei gemäß meinen Anforderungen umwandeln, um eine transformierte CSV-Ausgabedatei zu erstellen.Wörterbuch aus einer CSV-Datei mit dem DictReader-Objekt
Für diese Problemstellung habe ich gelernt, dass ich eine DictReader
von Python CSV verwenden muss. Nach der Umwandlung habe ich versucht, ein anderes Wörterbuch namens new_point zu erstellen, das in einer csv-Datei gespeichert werden muss.
Das Problem ist, scheint Wörterbuch-Generierung in meinem Code fehlerhaft, als wenn ich das Wörterbuch drucken, ist es weder eine Reihe von Wörterbüchern noch ein Wörterbuch.
with open(out_file, 'w') as f_out, open(in_file, 'r') as f_in:
out_colnames = ['duration', 'month', 'hour', 'day_of_week', 'user_type']
trip_writer = csv.DictWriter(f_out, fieldnames = out_colnames)
trip_writer.writeheader()
trip_reader = csv.DictReader(f_in)
# collect data from and process each row
for row in trip_reader:
# set up a dictionary to hold the values for the cleaned and trimmed
# data point
new_point = {}
## TODO: use the helper functions to get the cleaned data from ##
## the original data dictionaries. ##
## Note that the keys for the new_point dictionary should match ##
## the column names set in the DictWriter object above. ##
duration = duration_in_mins(row, city)
month,hour,day_of_week = time_of_trip(row, city)
user_type = type_of_user(row, city)
new_point['duration'] = duration
new_point['month'] = month
new_point['hour'] = hour
new_point['day_of_week'] = day_of_week
new_point['user_type'] = user_type
pprint(new_point)
wenn ich drucken die type(new_point)
i die Ausgabe bin immer wie unten
Class <Dict>
wenn ich die new_point dict drucke ich die unten bin immer.
{'day_of_week': 'Thursday',
'duration': 7.123116666666666,
'hour': 22,
'month': 3,
'user_type': 'Registered'}
{'day_of_week': 'Thursday',
'duration': 9.792516666666668,
'hour': 22,
'month': 3,
'user_type': 'Registered'}
{'day_of_week': 'Thursday',
'duration': 6.632983333333333,
'hour': 22,
'month': 3,
'user_type': 'Registered'}
{'day_of_week': 'Thursday',
'duration': 7.4047,
'hour': 22,
'month': 3,
'user_type': 'Registered'}
{'day_of_week': 'Thursday',
'duration': 13.014583333333333,
'hour': 22,
'month': 3,
'user_type': 'Registered'}
{'day_of_week': 'Thursday',
'duration': 17.0552,
'hour': 22,
'month': 3,
'user_type': 'Registered'}
{'day_of_week': 'Thursday',
'duration': 11.01165,
'hour': 22,
'month': 3,
'user_type': 'Registered'}
{'day_of_week': 'Thursday',
'duration': 30.01175,
'hour': 21,
'month': 3,
'user_type': 'Registered'}
Kann jemand, der diesen Ansatz bereits verfolgt hat mir ein Wörterbuch aus einem DictReader Objekt zu schaffen helfen, dieses Problem zu lösen.
Wenn Sie diese Frage sehr naiv finden, meine aufrichtige Entschuldigung. Ich bin völlig neu in Python. Ich habe versucht, die Dokumente zu lesen, aber ich habe das Konzept nicht verstanden. Ich konnte nirgendwo eine detaillierte Erklärung finden.
"Wenn ich das Wörterbuch drucke, ist es weder ein Array von Wörterbüchern noch ein Wörterbuch" Können Sie diese Aussage erklären? Es * sieht * wie ein Wörterbuch in der Ausgabe aus, die Sie gezeigt haben. – larsks
@larks Ich bin mir nicht sicher :) Es sieht aus wie ein Wörterbuch, aber wenn ich mit der For-Schleife iteriere, funktioniert es nicht wie im Falle von dict. – dataEnthusiast
Direkt nach der 'pprint'-Zeile, wie wäre es mit einer Zeile, die' trip_writer.writerow (new_point) 'sagt? –