python如何读写json数据(代码)

不言
发布: 2018-09-13 17:48:45
原创
2118人浏览过

本篇文章给大家带来的内容是关于python如何读写json数据(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

json

使用 Python 语言来编码和解码 JSON 对象。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。使用json函数需要导入json模块

  • json.dumps

将 Python 对象编码成 JSON 字符串

用于解码 JSON 数据。该函数返回 Python 字段的数据类型。

基础命令

将python对象编码成为json的字符串格式

d = {'name':'sheen',
     'age':17}
jsonStr = json.dumps(d) #{"name": "sheen", "age": 17} <class 'str'>

l = [1,3,5,1.2]
jsonList = json.dumps(l)    #[1, 3, 5, 1.2] <class 'str'>
登录后复制

将获取的json字符串解码为python的对象

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

pylist = json.loads(jsonList)   #[1, 3, 5, 1.2] <class 'list'>
登录后复制

将python对象编码成为json的字符串格式并写入文件中

with open('json.txt','w') as f :
    json.dump(d,f)
登录后复制

将文件中的json字符串解码为python的对象

with open('json.txt') as f:
    jsondict = json.load(f) #{'name': 'sheen', 'age': 17} <class 'dict'>
登录后复制

json示例

给100个不同的用户一个value值,存放到文件'json_dump.txt',并且是json格式
json.dump()参数

  • indent

应该是一个非负的整型,如果是0,或者为空,则一行显示数据;否则会换行且按照indent的数量显示前面的空白

Find JSON Path Online
Find JSON Path Online

Easily find JSON paths within JSON objects using our intuitive Json Path Finder

Find JSON Path Online30
查看详情 Find JSON Path Online
  • sort_keys

将数据根据keys的值进行排序

  • separators = ("每个元素间的分隔符", “key和value之间的分隔符”)

#给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次
登录后复制

1763300125-5b9a282f018b7_articlex.png

查询IP地址

根据IP查询所在地、运营商等信息的一些API如下:

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
登录后复制

上述的API接口,大多有一个特点是, 返回的直接是个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)
登录后复制

2162232030-5b9a2b9e3643c_articlex.png

相关推荐:

如何使用python读写json文件

php数据库 读出JSON 及写入数据库,该如何解决

以上就是python如何读写json数据(代码)的详细内容,更多请关注php中文网其它相关文章!

相关标签:
python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号