Maison  >  Article  >  développement back-end  >  Comment lire et écrire des données json en python (code)

Comment lire et écrire des données json en python (code)

不言
不言original
2018-09-13 17:48:451771parcourir

Le contenu de cet article explique comment lire et écrire des données json (code) en python. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

json

Utilisez le langage Python pour encoder et décoder les objets JSON.
JSON (JavaScript Object Notation) est un format d'échange de données léger, facile à lire et à écrire pour les humains. Pour utiliser la fonction json, vous devez importer le module json

  • json.dumps

Encoder l'objet Python dans une chaîne JSON

  • json.loads

est utilisé pour décoder les données JSON. Cette fonction renvoie le type de données du champ Python.

Commandes de base

Encoder les objets python au format de chaîne json

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>

Décoder la chaîne json obtenue en objets python

pydict = json.loads(jsonStr)    #{'name': 'sheen', 'age': 17} <class>

pylist = json.loads(jsonList)   #[1, 3, 5, 1.2] <class></class></class>

Encoder le python objet dans un format de chaîne json et écrivez-le dans le fichier

with open('json.txt','w') as f :
    json.dump(d,f)

Décoder la chaîne json dans le fichier en un objet python

with open('json.txt') as f:
    jsondict = json.load(f) #{'name': 'sheen', 'age': 17} <class></class>

Exemple json

Donner 100 utilisateurs différents une valeur, stockez-la dans le fichier 'json_dump.txt', et elle est au format json
paramètres json.dump()

  • indent

doit être un entier non négatif s'il est 0 ou vide, les données seront affichées sur une seule ligne, sinon la ligne sera renvoyée à la ligne et le blanc précédent sera affiché en fonction du nombre de ; indents

  • sort_keys

Trier les données selon la valeur des clés

  • separators = ( "entre chaque élément "Séparateur", "Séparateur entre clé et valeur")

#给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次

Comment lire et écrire des données json en python (code)

Requête d'adresse IP

Certaines API permettant d'interroger l'emplacement, l'opérateur et d'autres informations basées sur l'IP sont les suivantes :

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

L'une des caractéristiques de la plupart des interfaces API mentionnées ci-dessus est que les données renvoyées sont directement dans format json

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)

Comment lire et écrire des données json en python (code)

Recommandations associées :

Comment utiliser Python pour lire et écrire des fichiers json

La base de données php lit JSON et écrit dans la base de données, comment le résoudre

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn