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', '') #’SECOND_FLD’为字段名称,C代表数据类型为字符串,长度为40
file.field('fileName', 'C', '')
file.field('url', 'C', '')
file.field('photo', 'C', '')
file.field('netGrnereNum', 'C', '')
file.field('color', 'C', '')
file.field('num', 'C', '')
file.field('lat', 'C', '')
file.field('lon', 'C', '')
file.field('togriga', 'C', '')
file.field('gudumji', 'C', '')
file.field('memo', 'C', '') #写入数据
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')[:].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[]),float(xy[])]
data.append(x_y)
_data=[];
_data.append(data)
return _data; if __name__=="__main__":
print("执行程序!!!");
run();
print("程序结束!!!");

python创建shape的更多相关文章

  1. Python Numpy shape 基础用法(转自他人的博客,如涉及到侵权,请联系我)

    Python Numpy shape 基础用法 shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度.它的输入 ...

  2. 使用python创建mxnet操作符(网络层)

    对cuda了解不多,所以使用python创建新的操作层是个不错的选择,当然这个性能不如cuda编写的代码. 在MXNET源码的example/numpy-ops/下有官方提供的使用python编写新操 ...

  3. Python 创建本地服务器环境生成二维码

    一. 需求 公司要做一个H5手机端适配页面,因技术问题所以H5是外包的,每次前端给我们源码,我们把源码传到服务器让其他人访问看是否存在bug,这个不是很麻烦吗?有人说,可以让前端在他们的服务器上先托管 ...

  4. Python创建Cocos2d-x 2.2方法

    把创建项目做成一个批处理,当创建项目时可以省时省力很多. 操作步骤 1.在 E:\cocos2d-x-2.2.1\tools\project-creator 目录下创建 create_project. ...

  5. Python创建list和按照索引访问list

    Python创建list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.比如,列出班里所有同学的名字,就可以用一个list表示:>> ...

  6. [翻译] 使用 Python 创建你自己的 Shell:Part II

    目录 使用 Python 创建你自己的 Shell:Part II 原文链接与说明 步骤 4:内置命令 最后的想法 使用 Python 创建你自己的 Shell:Part II 原文链接与说明 htt ...

  7. [翻译] 使用 Python 创建你自己的 Shell:Part I

    目录 使用 Python 创建你自己的 Shell:Part I 原文链接与说明 步骤 0:项目结构 步骤 1:Shell 循环 步骤 2:命令切分 步骤 3:执行 运行 使用 Python 创建你自 ...

  8. 使用Python创建一个简易的Web Server

    Python 2.x中自带了SimpleHTTPServer模块,到Python3.x中,该模块被合并到了http.server模块中.使用该模块,可以快速创建一个简易的Web服务器. 我们在C:\U ...

  9. python 创建实例--待完善

    今天好好琢磨一下 python 创建实例的先后顺序 一. 就定义一个普通类 Util (默认)继承自 object,覆写 new ,init 方法 class Util(object): def __ ...

随机推荐

  1. C++中的explicit关键字 - 抑制隐式转换(转)

    在C++程序中很少有人去使用 explicit 关键字,不可否认,在平时的实践中确实很少能用的上.再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决.但稍微留心一下就会发现现有的MFC库 ...

  2. 动态规划——最长不下降子序列(LIS)

    最长不降子序列是这样一个问题: 下面介绍动态规划的做法. 令 dp[i] 表示以 A[i] 结尾的最长不下降序列长度.这样对 A[i] 来说就会有两种可能: 如果存在 A[i] 之前的元素 A[j] ...

  3. schedule和scheduleAtFixedRate的区别

  4. BootstrapValidator:表单验证神器

    前言:做Web开发的我们,表单验证是再常见不过的需求了.友好的错误提示能增加用户体验.博主搜索bootstrap表单验证,搜到的结果大部分都是文中的主题:bootstrapvalidator.今天就来 ...

  5. 由于挂载的nfs存储目录掉下线,导致创建VM时,无法创建

    具体错误,如下截图 重新挂载存储后,在创建VM,将成功

  6. codefirst updatebase

    http://blog.csdn.net/dj2008/article/details/23756895 http://blog.csdn.net/gentle_wolf/article/detail ...

  7. zigbee--绑定

    1.绑定是zigbee一种基本通信方式:具体绑定通信又分为3种模式,在这里只拿一种源绑定来说明. 源绑定: 发送模块 :必须要知道接收模块(被绑定模块)的网络地址或者MAC地址 接收方的接收端点 接收 ...

  8. IntelliJ IDEA——利用maven插件构建web工程

  9. css总结6:行高和字体大小

    1 CSS line-height 属性 代码: p.small {line-height:70%}p.big {line-height:200%} 运行后:70%与200%宽高 2 CSS font ...

  10. LightOJ 1258 Making Huge Palindromes (Manacher)

    题意:给定上一个串,让你在后面添加一些字符,使得这个串成为一个回文串. 析:先用manacher算法进行处理如果发现有字符匹配超过最长的了,结束匹配,答案就是该字符前面那个长度加上该串原来的长度. 代 ...