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. ASP.NET Core 框架源码地址

    ASP.NET Core 框架源码地址 https://github.com/dotnet/corefx 这个是.net core的 开源项目地址 https://github.com/aspnet  ...

  2. mpvue微信小程序多列选择器用法:实现省份城市选择

    前言 微信小程序默认给我们提供了一个省市区的picker选择器,只需将mode设置为region即可 <picker mode="region" bindchange=&qu ...

  3. Java——代码复用(组合和继承)

    前言 "复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对之加以改变是不够的,它必须还能够做更多的事情." Java解决问题都围绕类展开的, ...

  4. MVC基本开发介绍 (1)列表展示

    前言: 现在如果用.net 的解决方案来做网站或者是网站的后台管理系统,MVC 应该是比较流行的. 自从进了新公司后,也一直在用mvc + webapi 来做项目,这里做个分享性的总结,有更好的方法欢 ...

  5. js for循环删除两个数组相同元素

    var id = ['a','b','c','a','d','a','a','b','d','c','a','b','c','a','b','c'] var del = ['a','c']; var ...

  6. C#简单委托示例——让你一看就会的demo

    委托 1. 什么是委托? 委托就是具有相同签名和返回值类型的有序方法列表 它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递 是一种引用类型 方法的列表称为调用列表 当委托被调用时,它调 ...

  7. 【记录一次坑经历】axios使用x-www-form-urlencoded 服务器报400(错误的请求。 )(后端.Net MVC5 WebApi OAuth,前端Electron-Vue)

    首先放上源码 electron-vue axios 注册 import Vue from 'vue' import axios from 'axios'   axios.defaults.baseUR ...

  8. 从零开始学安全(三十七)●VM汇编环境搭建

    需要下载 vm 虚拟机 破解版连接 链接:https://pan.baidu.com/s/1r9MyPkNBmiYhQ8bdUxPmvQ 提取码:2o98 镜像文件和开发环境 链接:https://p ...

  9. css字体图标的使用方法

    提要:对于传统的一般用css雪碧(css sprite)来搞,目前大部分网站已经主要字体图标 ,利用font+css 或者font+html 来开发,今天总结了一下,记录之~ css sprite用背 ...

  10. freemark使用总结

    1.下拉框中使用三元表达式: <option value="1类" ${(bean.col5!?string="1类")?string('selected ...