Home > Article > Backend Development > How to read and write json data in python (code)
The content of this article is about how python reads and writes json data (code). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
Use the Python language to encode and decode JSON objects.
JSON (JavaScript Object Notation) is a lightweight data exchange format that is easy for humans to read and write. To use the json function, you need to import the json module
json.dumps
Encode Python objects into JSON strings
json.loads
is used to decode JSON data. This function returns the data type of the Python field.
Encode the python object into the json string format
d = {'name':'sheen', 'age':17} jsonStr = json.dumps(d) #{"name": "sheen", "age": 17} <class> l = [1,3,5,1.2] jsonList = json.dumps(l) #[1, 3, 5, 1.2] <class></class></class>
Decode the obtained json string into the python object
pydict = json.loads(jsonStr) #{'name': 'sheen', 'age': 17} <class> pylist = json.loads(jsonList) #[1, 3, 5, 1.2] <class></class></class>
The python object is encoded into a json string format and written to the file
with open('json.txt','w') as f : json.dump(d,f)
Decode the json string in the file into a python object
with open('json.txt') as f: jsondict = json.load(f) #{'name': 'sheen', 'age': 17} <class></class>
Give 100 A value for each different user is stored in the file 'json_dump.txt', and is in json format
json.dump() parameters
indent
should be a non-negative integer. If it is 0 or empty, the data will be displayed in one line; otherwise, it will wrap and display the preceding blanks according to the number of indents
sort_keys
Sort data according to the value of keys
separators = ("Separator between each element", "key and Separator between values")
#给100个不同的用户一个value值 #存放到文件'json_dump.txt',并且是json格式 import json import string from random import choice keys = ['user'+str(i) for i in range(100)] values = string.ascii_lowercase+string.ascii_uppercase #大小写字符串 dict = {choice(keys):choice(values) for i in range(100)} with open('json_dump.txt','w') as f: #indent:应该是一个非负的整型,如果是0,或者为空,则一行显示数据;否则会换行且按照indent的数量显示前面的空白 #sort_keys:将数据根据keys的值进行排序 #separators = ("每个元素间的分隔符", “key和value之间的分隔符”) json.dump(dict,f,indent=4,sort_keys=True, separators=(';', '=')) #为何最后文件不够100行? #因为随机选取的key值可能会重复,字典类型的key不允许重复,最后得到的数据会少于你给定的100次
1. 淘宝的API(推荐):http://ip.taobao.com/service/getIpInfo.php?ip=110.84.0.129 2. 国外freegeoip.net(推荐):http://freegeoip.net/json/110.84.0.129 这个还提供了经纬度信息(但不一定准) 3. 新浪的API:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=110.84.0.129 4. 腾讯的网页查询(返回的非json格式): http://ip.qq.com/cgi-bin/searchip?searchip1=110.84.0.129 5. ip.cn的网页(返回的非json格式):http://www.ip.cn/index.php?ip=110.84.0.129 6. ip-api.com: http://ip-api.com/json/110.84.0.129Most of the above-mentioned API interfaces have a characteristic that they return directly a json format
import json from urllib.request import urlopen # ip = input("请输入你要查询的Ip:") ip = '8.8.8.8' url = "http://ip.taobao.com/service/getIpInfo.php?ip=%s" %(ip) print(url) # 根据url获取网页的内容, 并且解码为utf-8格式, 识别中文; text = urlopen(url).read().decode('utf-8') # print(text,type(text)) data = json.loads(text)['data'] country = data['country'] country_id = data['country_id'] print(country,country_id)
How to use python to read and write json files
The above is the detailed content of How to read and write json data in python (code). For more information, please follow other related articles on the PHP Chinese website!