import json

"""将python的字典和列表转化为json字符串。json是前后端交互的枢纽"""
dic = {'name': '莉莉', 'age':18}
str_json = json.dumps(dic, ensure_ascii=False) # 将python中的字典转换为json字符串
print(str_json)
print(type(str_json)) lst = ["苹果", "桃子", "梨子"]
str2_json = json.dumps(lst, ensure_ascii=False) # 将python中的列表转化为json字符串
print(str2_json)
print(type(str2_json))
{"name": "莉莉", "age": 18}
<class 'str'>
["苹果", "桃子", "梨子"]
<class 'str'>
import json

"""将json字符串转化为Python的数据类型"""
str_json = '{"name": "莉莉", "age": 18}'
dic = json.loads(str_json) # 安全
print(dic)
print(type(dic)) print(eval(str_json)) # 不安全 str2_json = '["苹果", "桃子", "梨子"]'
lst = json.loads(str2_json)
print(lst)
print(type(lst))
{'name': '莉莉', 'age': 18}
<class 'dict'>
{'name': '莉莉', 'age': 18}
['苹果', '桃子', '梨子']
<class 'list'>
import json

# 将dict字典类型数据转换为json字符串
dic = {"name": "莉莉", "age": 18}
json_str = json.dumps(dic, ensure_ascii=False)
print(json_str)
print(type(json_str)) # 将json字符串转换为dict字典类型
json_str = '{"name": "lily", "age": 18}'
dic = json.loads(json_str)
print(dic)
print(type(dic))
{"name": "莉莉", "age": 18}
<class 'str'>
{'name': 'lily', 'age': 18}
<class 'dict'>

import json

# 将list类型数据转换为json字符串
dic = ["莉莉", 18]
json_str = json.dumps(dic, ensure_ascii=False)
print(json_str)
print(type(json_str)) # 将json字符串转换为list类型
json_str = '["莉莉", 18]'
dic = json.loads(json_str)
print(dic)
print(type(dic))
["莉莉", 18]
<class 'str'>
['莉莉', 18]
<class 'list'>
import json

# 将tuple类型数据转换为json字符串
dic = ("莉莉", 18)
json_str = json.dumps(dic, ensure_ascii=False)
print(json_str)
print(type(json_str)) # 将json字符串转换为list类型
json_str = '["莉莉", 18]'
dic = json.loads(json_str)
print(dic)
print(type(dic))
["莉莉", 18]
<class 'str'>
['莉莉', 18]
<class 'list'>
import json

# 将set类型数据不能转换为json字符串
dic = {"莉莉", 18}
json_str = json.dumps(dic, ensure_ascii=False)
print(json_str)
print(type(json_str))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-72-62a9e6cbaec2> in <module>()
3 # 将set类型数据不能转换为json字符串
4 dic = {"莉莉", 18}
----> 5 json_str = json.dumps(dic, ensure_ascii=False)
6 print(json_str)
7 print(type(json_str)) ~\Anaconda3\lib\json\__init__.py in dumps(obj, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw)
236 check_circular=check_circular, allow_nan=allow_nan, indent=indent,
237 separators=separators, default=default, sort_keys=sort_keys,
--> 238 **kw).encode(obj)
239
240 ~\Anaconda3\lib\json\encoder.py in encode(self, o)
197 # exceptions aren't as detailed. The list call should be roughly
198 # equivalent to the PySequence_Fast that ''.join() would do.
--> 199 chunks = self.iterencode(o, _one_shot=True)
200 if not isinstance(chunks, (list, tuple)):
201 chunks = list(chunks) ~\Anaconda3\lib\json\encoder.py in iterencode(self, o, _one_shot)
255 self.key_separator, self.item_separator, self.sort_keys,
256 self.skipkeys, _one_shot)
--> 257 return _iterencode(o, 0)
258
259 def _make_iterencode(markers, _default, _encoder, _indent, _floatstr, ~\Anaconda3\lib\json\encoder.py in default(self, o)
178 """
179 raise TypeError("Object of type '%s' is not JSON serializable" %
--> 180 o.__class__.__name__)
181
182 def encode(self, o): TypeError: Object of type 'set' is not JSON serializable
import json

"""将Python的数据类型dict或list转换为json字符串,并写入文件中"""
dic = {'name': '莉莉', 'age':18}
json.dump(dic, open("user.json", "w"), ensure_ascii=False) lst = ["苹果", "桃子", "梨子"]
json.dump(lst, open("fruit.json", "w"), ensure_ascii=False)
import json

"""读取文件中的json字符串"""
dic = json.load(open("user.json", "r"))
print(dic)
print(type(dic)) lst = json.load(open("fruit.json", "r"))
print(lst)
print(type(lst))
{'name': '莉莉', 'age': 18}
<class 'dict'>
['苹果', '桃子', '梨子']
<class 'list'>
import json

"""前端json和python字典、列表的区别:前端true, false, null,双引号 ==》对应python的True, False, None, 单引号"""
lst = [True, False, None, '引号']
print(json.dumps(lst, ensure_ascii=False))
[true, false, null, "引号"]

												

python3 json模块的更多相关文章

  1. python3.7 json模块

    #!/usr/bin/env python __author__ = "lrtao2010" #python3.7 json模块 ''' 要在不同的编程语言之间传递对象,就必须把对 ...

  2. python3之json模块使用

    1. json模块介绍 json是python自带的操作json的模块. python序列化为json时的数据类型转换关系: python格式 json格式 dict(复合类型) object lis ...

  3. Python3之json模块

    概念: 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON,XML等.反序列化就是从存储区域(JSON,XML)读取反序列化对象的状 ...

  4. python3 json、logging、sys模块

    json模块 import json dic = {'name':'egon','age':32} # ------------------------------>序列化 f = open(' ...

  5. Python 第三篇(上):python文件基础操作、json模块、lambda、map、filter、reduce和函数位置参数

    python一切皆对象,linux一切皆文件,python操作文件是很常见的O/I操作,其内置来open()函数可以完成文件的基本操作: 一:使用内置open()函数操作文件,基本语法如下: with ...

  6. Python3 JSON 数据解析

    JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. Python3 中可以使用 json 模块来对 JSON 数据进 ...

  7. Python 3 中的json模块使用

    1. 概述 JSON (JavaScript Object Notation)是一种使用广泛的轻量数据格式. Python标准库中的json模块提供了JSON数据的处理功能. Python中一种非常常 ...

  8. 洗礼灵魂,修炼python(70)--爬虫篇—补充知识:json模块

    在前面的某一篇中,说完了pickle,但我相信好多朋友都不懂到底有什么用,那么到了爬虫篇,它就大有用处了,而和pickle很相似的就是JSON模块 JSON 1.简介 1)JSON(JavaScrip ...

  9. 序列化模块— json模块,pickle模块,shelve模块

    json模块 pickle模块 shelve模块 序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. # 序列化模块 # 数据类型转化成字符串的过程就是序列化 # 为了方便存储和网 ...

随机推荐

  1. 爬虫协议 Tobots

    一.简介 Robots 协议(也称为爬虫协议.机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过 Robots 协议告诉搜索引擎哪些页面可以抓取 ...

  2. PHP大法

    Topic Link http://ctf5.shiyanbar.com/DUTCTF/index.php Notes: 1) 进去发现 根据提示查看是否存在.txt文件,打开之后发现有东西 2)分析 ...

  3. Kubernetes系列02—Kubernetes设计架构和设计理念

    本文收录在容器技术学习系列文章总目录 1.Kubernetes设计架构 Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分 ...

  4. 巧妙解决vue2.0关于set添加属性后视图不能更新的问题

    今天在工作中遇到一个问题,郁闷了很久,特地写一篇博客记录一下,方便以后再遇到可以查找,也分享个各位小伙伴,在网上查找很多资料说用Vue.$set设置属性后视图也会更新,但是真相并不是这样,通过等于号赋 ...

  5. javascript基础修炼(3)—What's this(下)

    开发者的javascript造诣取决于对[动态]和[异步]这两个词的理解水平. 这一期主要分析各种实际开发中各种复杂的this指向问题. 一. 严格模式 严格模式是ES5中添加的javascript的 ...

  6. .net -笔记 简单的操作符重载

    这个操作符重载很有意思 class Program { static void Main(string[] args) { Person person1 = new Person() { Name = ...

  7. java三大版本和核心优势

    javaSE(java standard Edition):标准版,定位在个人计算机上的应用. javaEE(java Enterprise Edition):企业版,定位在服务器端的应用.***** ...

  8. ELK 日志采集 实战教程

    概要 带着问题去看教程: 不是用logstash来监听我们的日志,我们可以使用logback配置来使用TCP appender通过TCP协议将日志发送到远程Logstash实例. 我们可以使用Logs ...

  9. django项目环境搭建

    本文转载自: https://blog.csdn.net/xiaogeldx/article/details/89038299 在码云平台创建项目 版本控制的种类 主要使用github(最主流) 国内 ...

  10. ArcGIS JavaScriptAPI----- 缓冲区操作

    描述 使用ArcGIS Server 几何服务(geometry service)来对绘制在地图上的图形生成缓冲区.几何服务能够在基于浏览器的应用程序中执行缓冲操作(buffering),投影要素(p ...