我是靠谱客的博主 阳光犀牛,最近开发中收集的这篇文章主要介绍04-数据存储(01 python对象与json字符串的转换、保存读取),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、Json简介


什么是json

JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式。它基于ECMAScript(w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据,简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机图解析和生成,并有效地提升网络传输效率。

JSON支持数据格式

1.对象(字典)。使用花括号。
2.列表(数组)。使用方括号。
3.整形、浮点型。
4.字符串类型(字行串必须要用双引号,不能用单引号)。

注意:

  • 多个数据之间使用逗号分开。
  • json本质上就是一个字符串。

 2、dump成json字符串以及编码问题

例1:字典和列表转JSON:

# -*- coding: utf-8 -*-
import json
books = [
{'title':'钢铁是怎样炼成的', 'price':9.8},
{'title':'红楼梦', 'price':9.9}
]
json_str = json.dumps(books, ensure_ascii=False)
print(type(json_str))
# <class 'str'>
print(json_str)
# [{"title": "钢铁是怎样炼成的", "price": 9.8}, {"title": "红楼梦", "price": 9.9}]
  • 因为Json在dump的时候,只能存放asctii的字符,因此会将中文进行转义,这时候我们可以使用ensure_ascii=False关闭这个特性。
  • 在python中,只有基本数据类型才能转换成JSON格式的字行串。即:int、float、str、list、dict、tuple。
  • JSON解析网站:Json.cn  在线解析Json(格式化)
  • 转换成json字符串后,单引号会变成双引号(json中只能用双引号)

例2:python对象转换为json字符串并保存

import json
# 将python对象转换为json字符串
persons = [
{'username':'zhiliao', 'age':10, 'contry':'china'},
{'username':'hello', 'age':20, 'contry':'china'}
]
json_str = json.dumps(persons)
# 保存为json文件“person.json”
with open('person.json', 'w', encoding='utf-8') as fp:
#
fp.write(json_str)
# dumps()需要执行2步,将转换之后,再写入
json.dump(persons, fp, ensure_ascii=False)
# dump()需要执行1步,转换和写入一并完成

注意:

对于文件的保存:

  • 如果有中文,写入时需要指定‘encoding’='utf-8'
  • 用json.dump时,默认编码为‘ascii’,有中文时,需要关掉
  • Json.dump()与Json.dumps()区别:dumps不能直接存到文件,dump可以(有fp指针)

 3、load成Python对象

# 1)json字符串load成python对象
json_str = '[{"title": "钢铁是怎样炼成的", "price": 9.8}, {"title": "红楼梦", "price": 9.9}]'
books = json.loads(json_str, encoding='utf-8')
print(type(books))
print(books)
# 2)直接从文件中读取json,为python对象
import json
with open('person.json','r',encoding='utf-8') as fp:
json_str = json.load(fp)
# 注意:从文件读取,需要用load,而不能用loads
print(type(json_str))
print(json_str)

 

最后

以上就是阳光犀牛为你收集整理的04-数据存储(01 python对象与json字符串的转换、保存读取)的全部内容,希望文章能够帮你解决04-数据存储(01 python对象与json字符串的转换、保存读取)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部