Python将JSON数据转换为ArcGIS Shapefile的实现方案
本文介绍如何使用Python将JSON文本数据转换为ArcGIS Shapefile格式。通过Python的shapefile库,解析JSON中的几何与属性信息,批量写入多边形图层。文章提供了完整的代码示例,涵盖字段定义、数据读取及文件生成步骤,适用于GIS数据处理与空间数据转换场景。
Python转换JSON为Shapefile的实现思路
在实际工作中,我们常遇到需要将JSON文本数据转换为ArcGIS Shapefile格式的需求。经过多种方案对比,最终决定采用Python语言来实现这一转换过程。
以下是具体的实现代码。
核心代码与数据解析逻辑
import shapefile
import json
import os
#shapefile="polygon.shp";
#jsonfile="社区网格.json";
def run():
data=readJSON()
datalist=data["list"]
file=shapefile.Writer(target="社区网格.shp",shapeType=shapefile.POLYGON,autoBalance=True);
#设置属性信息
file.field('nere', 'C', '40') #'SECOND_FLD'为字段名称,C代表数据类型为字符串,长度为40
file.field('fileName', 'C', '40')
file.field('url', 'C', '40')
file.field('photo', 'C', '40')
file.field('netGrnereNum', 'C', '40')
file.field('color', 'C', '40')
file.field('num', 'C', '40')
file.field('lat', 'C', '40')
file.field('lon', 'C', '40')
file.field('togriga', 'C', '40')
file.field('gudumji', 'C', '40')
file.field('memo', 'C', '40')
#写入数据
for item in datalist:
nere=item["nere"]
fileName = item["fileName"]
url = item["url"]
photo = item["photo"]
netGrnereNum = item["netGrnereNum"]
color = item["color"]
num = item["num"]
lat = item["lat"]
lon = item["lon"]
togriga = item["togriga"]
gudumji = item["gudumji"]
memo = item["memo"]
polysStr = item["hotinfo"]
polys=parsing(polysStr);
#写入
file.poly(polys=polys)
file.record(nere,fileName,url,photo,netGrnereNum,color,num,lat,lon,togriga,gudumji,memo)
print("-------写入成功---------")
#保存文件
file.save("社区网格.shp")
#读取json文件
def readJSON():
f = open("社区网格.json", "r",encoding="utf-8") # 设置文件对象
_str = f.read() # 将txt文件的所有内容读入到字符串str中
f.close() # 关闭文件
print("读取json完成")
if _str.startswith(u'\ufeff'):
_str = _str.encode('utf8')[3:].decode('utf8')
data = json.loads(_str,encoding='utf8')
return data;
#print(data)
#数据解析
def parsing(text):
data=[]
strs=text.split(",");
for line in strs:
xy=line.split(" ");
x_y=[float(xy[0]),float(xy[1])]
data.append(x_y)
_data=[];
_data.append(data)
return _data;
if __name__=="__main__":
print("执行程序!!!");
run();
print("程序结束!!!");
上述关于使用Python创建ArcGIS Shapefile文件的完整内容已分享完毕,希望能为读者提供有效的参考。欢迎大家继续支持本站,获取更多技术资源。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













