Zunächst möchte ich sagen, ich bin komplett neu in Python, und habe sehr wenig Erfahrung in der Programmierung. Ich entschied mich bei meiner Arbeit Python als Umgebung für eine Jobautomatisierung zu verwenden. Ich muss eine bestimmte Menge des Datums in XLS, Geocode-Adressen exportieren und dann Heatmap/Population-Map auf Google API-Karten oder OpenSourceMaps erstellen. Ich habe bereits eine Lösung gefunden, aber ich habe Probleme, sie zu kombinieren, und habe mich in einem sehr frühen Stadium festgefahren.Python 3.6 Ausgabe CVS-Datei ist leer
siehe mein Code:
import os
import pandas
import geopy
import urllib
import csv
import numpy
import geopy
# - - - - - - - - -
fin = open ("source_file.csv","r") # open input file for reading
users_dict = {}
with open('output_file.csv', 'wb') as fout: # output csv file
writer = csv.writer(fout)
with open('source_file.csv','r') as csvfile: # input csv file
reader = csv.DictReader(csvfile, delimiter=',')
for row in reader:
location_string = row['city'] + ',' + row['street'] + ' ' + row['house']
from geopy.geocoders import Nominatim
geolocator = Nominatim()
location = geolocator.geocode(location_string)
row['lat']=latitude = location.latitude
row['lng'] = location.longitude
users_dict.update(row)
print (users_dict)
fout.close()
fin.close()
Eingabedateiformat
unit_no,kod,street,house,city,lng,lat
123456,00-001,nowy swiat,4,warszawa,,
Wörterbuch Ausgabe:
{'unit_no': '123456', 'kod': '00-001', 'street': 'nowy swiat', 'house': '4', 'city': 'warszawa', 'lng': 21.0220598, 'lat': 52.2302825}
Ergebnis: output_file.csv wird die Größe Null output_file.csv geöffnet zeigt nichts in
erwartete Ausgabedatei mit Daten:
unit_no,kod,street,house,city,lng,lat
123456,00-001,nowy swiat,4,warszawa,21.0220598,52.2302825
In meinem Kopf ist nächste Stufe GeoJSON Datei von erstellten Ausgabe und danach zu schaffen es meine Markierungen oder Bevölkerung auf der Karte sichtbar zu machen.
Vielen Dank im Voraus für wertvolle Ratschläge.
können Sie es wo um es in meinem Code hinweisen. Entschuldigung für eine so einfache Frage. Wenn ich es in den Abschnitt open (output_file ....) platzierte, zurückgegeben: TypeError: ein Byte-ähnliches Objekt wird benötigt, nicht 'str' – Krystian
Gleich nachdem Sie den Writer definiert haben. Stellen Sie nach dem Drucken von user_dict sicher, dass Sie es in csv schreiben, indem Sie den Befehl writer verwenden (Sie haben es versäumt, das Diktat in csv zu schreiben). –
Hallo Vinay, sehe meine Antwort auf den Beitrag mit Code nach der Änderung. Danke für deine Zeit, mir zu helfen. – Krystian