Python操作JSON的详细方法讲解

最近在用python做一个项目,以前也没有学过python,也没有时间从头学起,所以现在都是边学边做。JSON作为目前比较流行的一种数据格式,在python中应用也是非常方便的。今天我就把python下操作JSON的详细方法记录一下,希望能够帮助到有希望有朋友。


首先,在python里面操作JSON,我们希望用到JSON库,在新版本的python里面,JSON库已经自带了,所以不需要额外安装。只需要在使用前进行导入即可:import json


操作JSON主要用到4个方法:

1、json.load(),作用是从文件流中加载JSON,并转成python对象

2、json.loads(),作用是从字符串中加载JSON,并转成python对象

3、json.dump(),作用是将python对象转成JSON字符串,并保存到文件中

4、json.dumps(),作用是将python对象转成JSON字符串


load跟loads方法表示读取JSON,并转成python对象,因此有个encoding参数需要设置,一般设置为utf8,目的是防止中文乱码。


dump跟dumps方法表示将python对象转成JSON字符串,同样是因为中文的问题,因此要设置ensure_ascii=False,如果不设置或者设置为True的话,那么中文汉字将被转换成类似\u5f20\u4e09的unicode编码。另外,还可以设置sort_keys=True,表示将python对象转成JSON字符串的时候将按JSON属性的首字母排序。


下面是具体的测试代码,大家可以参考一下:

import json


# json.loads()方法表示从字符串中读取JSON,loads可以理解为load string

# 将JSON字符串转成Python对象

# encoding="utf8",设置编码,防止中文乱码

json1 = '{"id":1,"name":"张三","addtime":"2019-09-20"}'

c1 = json.loads(json1, encoding="utf8")

print(c1)

# 输出:{'id': 1, 'name': '张三', 'addtime': '2019-09-20'}


# json.dumps()方法表示将JSON对象转成JSON字符串,dumps可以理解为dump string

# 将Python对象转成JSON字符串

# ensure_ascii=False表示输出中文汉字,如果是True的话,则会输出类似\u5f20\u4e09的unicode编码

# sort_keys表示对key按字母顺序进行排序

c2 = {"id": 1, "name": "李四", "addtime": "2019-09-21"}

json2 = json.dumps(c2, ensure_ascii=False, sort_keys=True)

print(json2)

# 输出:{"addtime": "2019-09-21", "id": 1, "name": "李四"}


# json.load()方法表示从文件流中读取读取JSON

# 从文件中读取JSON字符串,并转成Python对象

file = open("1.json", encoding="utf8")

data = json.load(file, encoding="utf8")

print(data)

# 输出:{'id': 1, 'name': '张三', 'addtime': '2018-09-18 17:40:39'}


# json.dump()方法表示将Python对象转成JSON字符串,并写入文件流

# 将Python对象转成JSON字符串,并写入文件流

c3 = {"id": 1, "name": "李四", "addtime": "2019-09-21"}

file = open("3.json", mode="w", encoding="utf8")

json.dump(obj=c3, fp=file, ensure_ascii=False, sort_keys=True)

file.close()


# 遍历JSON,需要先将JSON字符串转成Python对象,然后再按字典的方式读取即可

json1 = '{"id":1,"name":"张三","addtime":"2019-09-20"}'

c1 = json.loads(json1, encoding="utf8")

print("id:%s,name:%s,addtime:%s" % (c1["id"], c1["name"], c1["addtime"]))

# 输出:id:1,name:张三,addtime:2019-09-20


json1 = '[{"id": 1,"name": "张三","addtime": "2018-09-17 16:54:45"},{"id": 2,"name": "李四","addtime": "2018-09-18 13:24:25"}]'

c1 = json.loads(json1,encoding="utf8")

print(c1)

for x in c1:

print(x["id"])

print(x["name"])

print(x["addtime"])

# 输出:

# 张三

# 2018-09-17 16:54:45

# 2

# 李四

# 2018-09-18 13:24:25


源码下载:python操作json.zip

  1. 本网站所收集的部分资料来源于互联网,本站不对其真实性负责,也不构成任何其他建议。如果您发现有侵犯您权益的内容,请与我们取得联系,我们会及时修改或删除。
  2. 传递知识、传递力量,欢迎各位网友对本站的文章进行转载和分享。
  3. 本站QQ群交流群:904314688  群号:904314688
发表评论
 
评论列表(目前共有 条评论)
暂时还没有评论哦~

文章搜索

商家广告


版权所有:秋风雅居 (www.198933.com) ©2024 All Rights Reserved.

粤ICP备20031662号