Python读取JSON数据,并解决字符集不匹配问题

时间:2022-09-14 20:28:38

今天来谈一谈Python解析JSON数据,并写入到本地文件的一个小例子。

思路如下

  • 从一个返回JSON天气数据的网站获取到目标JSON数据串
  • 使用Python解析出需要的部分
  • 写入到本地文件,供其他的应用程序读取
  • 完成整个业务需求

原料

一个可以获得天气信息的URL网址,如天气信息接口

读取到的结果:(由于是浏览器显示的时候的编码与之不匹配,故出现了乱码,但这并不影响我们对数据的处理)

{"weatherinfo":{"city":"鍖椾含","cityid":"101010100","temp":"18","WD":"涓滃崡椋�","WS":"1绾�","SD":"17%","WSE":"1","time":"17:05","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB","njd":"鏆傛棤瀹炲喌","qy":"1011","rain":"0"}}

代码示例

import sys
import urllib,urllib2
import json

# 获取到目标URL的JSON数据串
def getHtml(url):
    page = urllib2.urlopen(url)
    html = page.read()
    return html

def parseTOUTF8(data):
    data = json.loads(data)
    content = data['weatherinfo']
    result = json.dumps(content,ensure_ascii=False)
    return result

def prettyData(data):
    result = 'My Weather Info :\n'
    for item in data:
        result = result + item + '\t' + data[item] + '\n'
    return result

def writeToLocal(filepath,filename,data):
    file = os.open(path+filename,'wb')
    file.write(data)
    file.close()
    print '数据已经成功写入到本地文件'

if __name__ == "__main__":
    url = 'http://www.weather.com.cn/data/sk/101010100.html'
    page = getHtml(url)
    text = parseTOUTF8(page)
    content = prettyData(text)
    path=r'F:\MyWeatherInfo.txt'
    write(path,'',content)
    print '天气信息获取并更新完毕'

下一步

这样就算完成了。接下来就是使用其他的语言或者仍旧使用Python读取这些数据,然后做些其他的处理了。这相比于使用Java获取网络数据,然后解析JSON字符串简单多了吧。