Home  >  Article  >  Backend Development  >  How to read and write json data in python (code)

How to read and write json data in python (code)

不言
不言Original
2018-09-13 17:48:451736browse

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.

json

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.

Basic commands

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>

json example

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次

How to read and write json data in python (code)

##Query IP address

Query location based on IP, Some APIs for operator and other information are as follows:

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.129
Most 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 read and write json data in python (code)

Related recommendations:

How to use python to read and write json files

##php database to read JSON and write to the database, the How to solve

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn