gis可以导入csv格式数据_Python下载json格式数据并保存csv

RRL SKILLs频道只讨论技术话题
~~~~~~~~~ 发现一个比较稳定的水位及径流量json格式的数据,每天至少两次更新。数据包含主要河流和水库,对于从宏观上监控水情有点用。且数据数据可从国务院网站链接过去,应该算是顶层决策的结果,是稳定的源。实现功能的同时,学习解决了下列几个问题。 字典数据类型 字典是list的延申和扩展,对于大量的属性数据传输和分享有冗余小,压缩比高的特点。用好字典对用好json有不少帮助。
用import json导入,包含有s组和无s组。有s组,针对str操作;无s组针对文件操作。由于我的数据为str格式,所以程序里用到的是有s组。有s组的方法有两个dumps和loads,具体用法请自查。
字典是可以嵌套的,字典里可以包含字典。用dict[键值1][键值2]可以返回实际的数据,返回类型为list。 时间
都知道time.time()可以返回时间,但是返回的时间是距离遥远的时间的一个秒数,可以用time.localtime(time.time())[i]来返回年月日时。
而且,修改时间格式的方式也很有趣,如果要让时间按照两位数显示,就需要用“{:0>2d}”.format(time.localtime(time.time())[3]))来返回当前时刻的小时,凌晨3点就03,夜里十一点就是23。 处理中文编码
由于原来的文件里有不少中文内容,如果要让CMD环境里可以显示中文,需要在CMD里打入
chcp 65001 改去UTF-8
chcp 936 改去 GBK简体中文
否则中文就如下图不能正常显示。 ebbe1e22484525d553ae474a9e3a7cd6.png 修改成GBK之后,可以显示。 b9f3e03890b726574e401956c1db1e8c.png 修改UTF-8之后,不可以显示。 74853b0c949eb62ae63d26a73e9dec84.png可见 GBK最好用,当前的环境已经可以正确显示简体中文,debug就不需要看乱码了。 保存txt
与第三个问题同样的原因,在保存到txt文档里之后,也会有文件显示乱码的情况,所以在打开文件写入的时候,要设置文件的编码格式,一般选择UTF-8,用如下代码fo=open(outfn,'a+',encoding='utf8') 代码
老样子,代码如下,希望得到老司机指正
# 20200707# rrl# purpose: read water level data from URL and save into .csvimport urllib.request as urimport jsonimport timet0=time.time()outpath='随意'fn_type='自便'fn_yy=str(time.localtime(time.time())[0])fn_mm=str('{:0>2d}'.format(time.localtime(time.time())[1]))fn_dd=str('{:0>2d}'.format(time.localtime(time.time())[2]))fn_hh=str('{:0>2d}'.format(time.localtime(time.time())[3]))+'00'outfn=outpath+fn_type+fn_yy+'-'+fn_mm+'-'+fn_dd+'-'+fn_hh+'.csv'url=ur.urlopen('http://xxfb.mwr.cn/hydroSearch/greatRiver')urldata=url.read()dict=json.loads(urldata)list=dict['result']['data']row='time,'+'poiAddv,'+'poiBsnm,'+'rvnm,'+'stcd,'+'stnm,'+'webStlc,'+'wrz,'+'ql,'+'zl,\n'i=0while ilist):  item1=list[i]['tm']  item2=list[i]['poiAddv']  item3=list[i]['poiBsnm']  item4=list[i]['rvnm']  item5=list[i]['stcd']  item6=list[i]['stnm']  item7=list[i]['webStlc']  item8=list[i]['wrz']  item9=list[i]['ql']  item10=list[i]['zl']  row=row+str(item1)+','+str(item2)+','+str(item3)+','+str(item4)+','+str(item5)+','+str(item6)+','+str(item7)+','+str(item8)+','+str(item9)+','+str(item10)+',\n'  i=i+1fo=open(outfn,'a+',encoding='utf8')fo.write(row)fo.close()print(time.time()-t0)

读写完成一般不超过2秒。(笔记本没插电9秒,插电1.8秒)。
部分结果如下: 88b351f23c38c8edffa39e4ef552084d.png 下一步需要在window里设置每日自动运行,之后再研究。
(本集完) 欢迎留言和添加小编微信号 xrm-rrl 进一步交(tiao)流(xi)
RRL SKILLs Python+wget批量下载
用蒙特卡洛算派 用python玩一玩蒙特卡洛过程 python程序优化 python系统配置 数据处理之思考01 [原创]让地图会说话
观点 ENSO周期与气旋生成 [原创]过了防灾减灾日,再谈风险管理 [原创]区块链的保险应用2 [原创]区块链的保险应用1 舟曲之痛 [原创]风险地图也风险 [原创]农业指数保险观察 论人为风险的重要性 无人机技术在灾害勘察中的应用和挑战 巨灾杂谈
xbb [xbb]19001-经典教材 [xbb]19002-家教 [xbb]19003-提问 [xbb]19004-疯癫 [xbb]19005-高寿 [xbb]19006-香港理工攻略 [xbb]19007-好东西 [xbb]19008-泡泡 [xbb]20001-热 [xbb]20002-金黄的乡愁如丝 [xbb]20003-极乐visa [xbb]20004-纠结的数字 [xbb]20005-天气股票
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值