Python学习—json模块
2018-09-13 21:00
411 查看
json模块
四个常用方法son.dumps() 将python对象编码成为json的字符串格式(最常用的是字典,列表集合等都可以) json.dump() 将python对象编码成为json的字符串格式并写入文件 json.loads() 将json的字符串格式解码成python对象 json.load() 将文件中的json的字符串格式解码成python对象
例子
import json #将python对象编码成为json的字符串格式 d = {'name':'hahaha','balabala':'lalalala',"aaa":11111,"bbbbb":2222} jsdict = json.dumps(d) print(jsdict) print(type(jsdict)) """ 运行结果: {"name": "hahaha", "balabala": "lalalala","aaa":11111,"bbbbb":2222} <class 'str'> """ li = [1,2,3,4,5] jslist = json.dumps(li) print(jslist) print(type(jslist)) """ 运行结果: [1, 2, 3, 4, 5] <class 'str'> """ #将json的字符串格式解码成python对象 pydict = json.loads(jsdict) print(pydict) print(type(pydict)) """ 运行结果: {'name': 'hahaha', 'balabala': 'lalalala', 'aaa': 11111, 'bbbbb': 2222} <class 'dict'> """ #将python对象编码成为json的字符串格式并写入文件 with open('jsontext.txt','w') as f: json.dump(d,f) #将文件中的json的字符串格式解码成python对象 with open('jsontext.txt') as f: jsdict = json.load(f) print(jsdict) print(type(jsdict)) """ 运行结果: {'name': 'hahaha', 'balabala': 'lalalala', 'aaa': 11111, 'bbbbb': 2222} <class 'dict'> """ #将python对象编码成为json的字符串格式 并以指定的格式 并写入文件 with open('jsontext.txt','w') as f: #indent=4表示缩进4空格,并且每个元素独占一行 #sort_keys=True表示按Key值排序 #separators=('',' = ')表示每个元素间用''分隔,key与value间用' = '分隔 json.dump(d,f,indent=4,sort_keys=True,separators=('',' = '))
jsontext.txt文件内容:
{ "aaa" = 11111 "balabala" = "lalalala" "bbbbb" = 2222 "name" = "hahaha" }
根据ip查归属地
根据IP查询所在地、运营商等信息的一些API如下:
淘宝的API(推荐):http://ip.taobao.com/service/getIpInfo.php?ip=110.84.0.129
国外freegeoip.net(推荐):http://freegeoip.net/json/110.84.0.129 这个还提供了经纬度信息(但不一定准)
新浪的API:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=110.84.0.129
腾讯的网页查询(返回的非json格式): http://ip.qq.com/cgi-bin/searchip?searchip1=110.84.0.129
ip.cn的网页(返回的非json格式):http://www.ip.cn/index.php?ip=110.84.0.129
ip-api.com: http://ip-api.com/json/110.84.0.129
上述的API接口,大多有一个特点是, 返回的直接是个json格式
import json from urllib.request import urlopen ip = input('IP:') url = 'http://ip.taobao.com/service/getIpInfo.php?ip=%s' %ip text = urlopen(url).read().decode('utf-8') """ urlopen(url)返回的是来自服务器的响应消息 read()将返回值读取(为json字符串格式) decode('utf-8')将字符串编码为utf-8格式 """ d = json.loads(text)['d b60 ata'] country = d['country'] city = d['city'] print(country,city)
运行示例:
IP:111.211.233.56 中国 南京
相关文章推荐
- python模块学习之json
- python学习之路(json & pickle 模块 ---序列化,反序列化)
- Python模块学习--shutil和hashlib和json
- Python模块学习之json
- Python模块学习--shutil和hashlib和json
- python序列化pickle模块和json模块简单学习
- 【Python学习笔记】-json模块
- python模块学习---json
- Python3 学习第十三弹: 模块学习五之pickle与json
- 学习python 之 json模块
- 学习廖雪峰Python3教程的python序列化json模块的小笔记
- Python模块学习——logging
- Python中的json模块用于Unicode编码与中文编解码示例
- python的自带GUI模块Tkinter学习
- Python模块学习-re和sys模块
- 【python学习笔记】flask实现简单的接收json返回json的接口
- python学习笔记,偏函数,模块,
- Python模块学习 ---- datetime
- python学习笔记(三) 实现switch,内建函数,模块和包
- Python模块学习:urllib