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. 可视化面板LogDashboard使用log4net源

    logdashboard现已支持log4net文件源,本示例源码在 https://github.com/liangshiw/LogDashboard/tree/master/samples/UseL ...

  2. 浅析JavaScript工厂模式

    这里主要介绍两种工厂模式,第一种“简单工厂模式”,第二种“工厂方法模式” 简单工厂模式 1.定义 由一个工厂对象决定对象创建某一种产品对象的的实例.主要用来创建同一类对象. 2.具体需求 现在有一个登 ...

  3. 深度学习(九) 深度学习最全优化方法总结比较(SGD,Momentum,Nesterov Momentum,Adagrad,Adadelta,RMSprop,Adam)

    前言 这里讨论的优化问题指的是,给定目标函数f(x),我们需要找到一组参数x(权重),使得f(x)的值最小. 本文以下内容假设读者已经了解机器学习基本知识,和梯度下降的原理. SGD SGD指stoc ...

  4. Android ios嵌套web页面

    我们现在做一个活动页面,Android和ios的活动页面用web来做,方便更改,下面有几个小问题: 1.在Android和ios中,虽然web上面可以存localstorage,但是到了Android ...

  5. php ip2long负数的问题

    大家可能都知道php提供了ip2long与long2ip方法对ip地址处理.抛砖引玉,说点概念性滴: 1.ip2long — 将一个IPV4的字符串互联网协议转换成数字格式 int ip2long ( ...

  6. 经典面试题:从 URL 输入到页面展现到底发生什么?

    前言 打开浏览器从输入网址到网页呈现在大家面前,背后到底发生了什么?经历怎么样的一个过程?先给大家来张总体流程图,具体步骤请看下文分解! 本文首发地址为GitHub 博客,写文章不易,请多多支持与关注 ...

  7. git操作+一个本地项目推到github上+注意

    git init 创建新文件夹,打开,然后执行以创建新的 git 仓库. git config --global user.name "xxx" git config --glob ...

  8. 将Dynamics 365中的用户及其角色、角色导出到Excel中

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复240或者20161204可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  9. Echarts地图使用经验-地图变形和添加数据

    关于echart2,echart3地图的使用一点人生经验: 1.echart3,echart2加载地图变形修复. 最近在使用echart2使用过程中,发现加载海南地图会产生变形.如下图,海南地图产生了 ...

  10. Dynamics 365-如何利用Audit History还原被删除的数据

    Audit History,常被用来记录record的日常操作信息,包括创建,更新,删除.这是一个非常实用的功能,想想看,如果数据被误修改了,通过Audit History,可以很容易地找到修改前的数 ...