Python 3.6输出CVS文件为空

问题描述:

首先让我说我完全是Python新手,并且在编程方面的经验很少。 我决定在工作中使用Python作为一些工作自动化的环境。 我需要排序一些导出到XLS的日期,地理编码地址,然后在Google API地图或OpenSourceMaps上创建热图/人口地图。我已经找到了SOME解决方案,但遇到了结合它们的问题,并且停留在非常有效的阶段。Python 3.6输出CVS文件为空

请参阅我的代码:

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() 

输入文件格式

unit_no,kod,street,house,city,lng,lat 
123456,00-001,nowy swiat,4,warszawa,, 

词典输出:

{'unit_no': '123456', 'kod': '00-001', 'street': 'nowy swiat', 'house': '4', 'city': 'warszawa', 'lng': 21.0220598, 'lat': 52.2302825} 

结果: output_file.csv为零大小 output_file.csv打开在

中什么也没有显示

与数据预期输出文件:

unit_no,kod,street,house,city,lng,lat 
123456,00-001,nowy swiat,4,warszawa,21.0220598,52.2302825 

在我的脑海里一个阶段是从创建输出创建GeoJSON的文件,之后显现在地图上标记我或群体。

非常感谢您提供宝贵的建议。

做一个标题列表,并将其在output_file.csv

header = ['unit_no','kod','street','house','city','lng','lat'] 
writer.writerow(header) 

这首写将使CSV的标题第一行,然后输出词典将使用CSV的第一行每次涉及并添加数据相应地。

+0

你可以指出来哪里把它在我的代码。对于这样一个简单的问题抱歉。当我将它放在open('output_file ....)部分时,返回:TypeError:需要类似字节的对象,而不是'str' – Krystian

+0

刚刚定义了writer之后。并且在打印user_dict之后,确保使用writer命令将其写入csv(您错过了将dict写入csv)。 –

+0

嗨Vinay,请参阅我的回复帖子,显示修改后的代码。谢谢你的时间来帮助我。 – Krystian

,如果我理解你还有我的代码应该是这样的:

with open('output_file.csv', 'wb') as fout: # output csv file 
    writer = csv.writer(fout) 
    header = ['unit_no','kod','street','house','city','lng','lat'] # your suggestion 
    writer.writerow(header) # your suggestion 
    with open('source_file.csv','r') as csvfile: # input csv file 

,并完成:

 print (users_dict) 
     writer = csv.DictWriter(fout, delimiter=',') # your suggestion 
     writer.writerows(user_dict) # your suggestion 
     fout.close()