通过Python将CSV转换为KML

2024-05-26 11:08:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个小问题我总是得到错误:

TypeError: cannot concatenate 'str' and 'list' objects

import csv
import os
fp = "filepath/testfile.csv"
file = open(fp)
lines =file.readlines()
for line in lines:
    line = line.strip()
    fields = line.split(',') #comma seperated
    branch = fields[0].split() #splitting
    lat = fields[1].split()
    lng = fields[2].split()
    web = fields[3].split()
    email = fields[4].split()
    adress = fields[5].split()

    print ("branch: " + branch) #print splitted
    print ("lat: " + lat)
    print ("lng: " + lng)
    print ("web :" + web)
    print ("email: " + email)
    print ("address: " + address)

f = open('filepath/csv2kml.kml', 'w')
fname = "testing_Actions"
#Writing the kml file.
f.write("<?xml version='1.0' encoding='UTF-8'?>\n")
f.write("<kml xmlns='http://earth.google.com/kml/2.1'>\n")
f.write("<Document>\n")
f.write("   <name>" + fname + '.kml' +"</name>\n")
for row in lines:
    f.write("   <Placemark>\n")
    f.write("       <ExtendedData>\n")
    f.write("           <Data name=the branch name>\n")
    f.write("               <value>\n")
    f.write("               " + str(branch) + "\n")
    f.write("               </value>\n")
    f.write("           </Data>\n")
    f.write("           </Data name=Web>\n")
    f.write("               <value>\n")
    f.write("               " + str(web) +"\n")
    f.write("               </value>\n")
    f.write("           </Data>\n")
    f.write("           </Data name=email>\n")
    f.write("               <value>\n")
    f.write("               " + str(email) + "\n")
    f.write("               </value>\n")
    f.write("           </Data>\n")
    f.write("       <description>" + str(address) + "</description>\n")
    f.write("       <Point>\n")
    f.write("           <coordinates>" + str(lat) + "," + str(lng) + "</coordinates>\n")
    f.write("       </Point>\n")
    f.write("   </Placemark>\n")
f.write("</Document>\n")
f.write("</kml>\n")
print ("File Created. ")
f.close
file.close()

我找不到我的错误。在


Tags: namebranchfieldsdatavalueemaillinekml
3条回答

我解决了!在

print ("branch: " + branch) #print splitted
print ("lat: " + lat)
print ("lng: " + lng)
print ("web :" + web)
print ("email: " + email)
print ("address: " + address)

编辑到

^{pr2}$

以及

f.write("           <Data name=the branch name>\n")
f.write("               <value>\n")
f.write("               " + `branch` + "\n")
f.write("               </value>\n")
f.write("           </Data>\n")

等等

我找不到我的错误

你可以的。如果您完全阅读了错误消息,它还会告诉您错误发生在哪几行。在

是在这里吗?在

print ("branch: " + branch) #print splitted

在下面几行中,您尝试连接字符串"branch"和列表branch。在

尝试将其替换为:

^{pr2}$

更好的是,使用KML库:http://googlegeodevelopers.blogspot.ca/2012/01/introducing-pykml-python-library-for.html

几乎每种语言都有一个。在

相关问题 更多 >