我正在使用SimpleXML库创建kml。当创建单个dict条目时,它就像一个符咒一样工作,但是当尝试为每个dict条目创建一个kml时,返回一个我找不到的错误。 数据具有这种格式:
{12: {900: [(-5.4529673, 4.46),
(-3.4529799, 40.454),
(-3.495, 33),
(-3.45471, 40.437)]},
29: {900: [(-3.452....}
脚本如下所示:
import simplekml
kml = simplekml.Kml()
for key, value in data.items():
pol = kml.newpolygon(name = key)
pol.outerboundaryis = data[key][900]
pol.innerboundaryis = []
print(pol.outerboundaryis)
pol.style.linestyle.color = simplekml.Color.green
pol.style.linestyle.width = 5
pol.style.polystyle.color = simplekml.Color.changealphaint(100, simplekml.Color.green)
print(pol.name)
kml.save(str(pol.name) +".kml")
返回此错误:
AttributeError: 'int' object has no attribute 'count'
我一直在使用kml.save('key'+“.kml”)…将边界转换为字符串…始终存在相同的问题。我不知道什么是整数,我开始觉得这是库本身的问题? 请原谅我,谢谢你
p.E:也尝试在enst dict上迭代,产生了相同的错误:
import simplekml
kml = simplekml.Kml()
for key, value in data.items():
for key2, value2 in value.items():
pol = kml.newpolygon(name = key)
pol.outerboundaryis = value2
pol.innerboundaryis = []
print(pol.outerboundaryis)
pol.style.linestyle.color = simplekml.Color.green
pol.style.linestyle.width = 5
pol.style.polystyle.color = simplekml.Color.changealphaint(100, simplekml.Color.green)
kml.save(str(pol.name) +".kml")
结束创建一个函数,更易于使用
问题是如何命名多边形,即pol=kml.newpolygon(name=key)。由于键的类型为int,因此需要将其转换为string
pol=kml.newpolygon(name=str(key))
正如您所说,它将在循环之外工作,因为您没有遍历
data
字典的整个元素问题是这里保存的数据
这不能用于此语法
for key, value in data.items():
,因为它只接受key -> value
对,并且您的数据由字典列表组成阅读更多有关正确使用
for key, value in data.items():
的信息要遍历字典列表,请参见here,并将该思想合并到代码中
相关问题 更多 >
编程相关推荐