python的json应用的简单介绍

python的json应用的简单介绍import json,time  

本文目录一览:

如何用python处理json文件

import json,time  

  

infos = {“_id”:”description”,”name”:”python”,”filename”:”中文”,”os”:[“abcd”,”hello”,”www”]}  

infos[“time”] = time.time()#动态修改json文件内容  

#生成json文件  

def json_file(infos):  

    with open(“./static/desc.desc”,”w”) as jsonf:  

        jsonf.write(json.dumps(infos)) 

json_file(infos)  

  

  

  

#读取json文件的内容  

file_info = json.load(file(“./static/desc.desc”))  

print file_info,type(file_info)  

filename = file_info[“filename”]  

print filename  

  

infos = json.dumps(file_info,sort_keys=True,indent=4)  

print infos,type(infos)

python使用json模块来处理json数据

python的json应用的简单介绍

【Python】浅谈python中的json

一 前言  

   最近一直在做开发相关的工作–基于Django的web 平台,其中需要从model层传输数据到view 层做数据展示或者做业务逻辑处理。我们采用通用的Json格式–Json(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和程序解析。

二 认识Json

   2.1 Json 结构

   常见的Json格式为 “名称/值”对的集合,其中 值可以是对象,列表,字典,字符串等等。比如

backup_data = {“back_to_host”: “dbbk0”,

“ip_address”: “10.10.20.3”,

“host_name”: “rac4”,

“port”: 3306}

  2.2 使用Json

  Python的Json模块序列化与反序列化的过程分别是 编码和解码。这两个过程涉及到两组不同的函数

  编码 把一个Python对象编码转换成Json字符串,json.dumps(data)/json.dump(data,file_handler)

  解码 把Json格式字符串解码转换成Python对象,json.loads(data)/json.load(file_handler)

  在python中要使用Json模块做相关操作,必须先导入:

import Json

  2.3 主要函数

  编码函数主要有 json.dumps(data)/json.dump(data,file_handler)

   json.dumps()的参数是将python对象转换为字符串,如使用json.dumps序列化的对象json_dumps=json.dumps({‘a’:1, ‘b’:2}) ,json_dumps='{“b”: 2, “a”: 1}’

   json.dump 是将内置类型序列化为json对象后写入文件。

 解码函数主要由json.loads(data)/json.load(file_handler)  

    json.loads的参数是内存对象,把Json格式字符串解码转换成Python对象,json_loads=json.loads(d_json)  #{ b”: 2, “a”: 1},使用load重新反序列化为dict

    json.load()的参数针对文件句柄,比如本地有一个文件/tmp/test.json  json_load=json.load(open(‘/tmp/test.json’))

具体案例参考如下:

In [3]: data={“back_to_host”: “rac1”,

…: “ip_address”: “10.215.20.3”,

…: “host_name”: “rac3”,

…: “port”: 3306}

In [7]: json_str=json.dumps(data)

In [8]: print json_str

{“ip_address”: “10.215.20.3”, “back_to_host”: “rac1”, “host_name”: “rac3”, “port”: 3306}

In [9]: json_loads=json.load(json_str)

—————————————————————————

AttributeError Traceback (most recent call last)

ipython-input-9-180506f16431 in module()

—- 1 json_loads=json.load(json_str)

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.pyc in load(fp, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)

284

285 “”

注意 从上面的报错信息来看 json.loads 传参是字符串类型,并不是文件句柄,没有 read()属性。

In [10]: json_loads=json.loads(json_str)

In [11]: print json_loads

{u’back_to_host’: u’rac1′, u’ip_address’: u’10.215.20.3′, u’host_name’: u’rac3′, u’port’: 3306}

In [12]: type(json_loads)

Out[12]: dict

In [13]: type(json_str)

Out[13]: str

利用dump 将数据写入 dump.json

In [17]: with open(‘/tmp/dump.json’,’w’) as f:

…: json.dump(json_str,f)

…:

yangyiDBA:~ yangyi$ cat /tmp/dump.json

“{\”ip_address\”: \”10.10.20.3\”, \”back_to_host\”: \”rac1\”, \”host_name\”: \”rac3\”, \”port\”: 3306}”

yangyiDBA:~ yangyi$

利用json.load 将dump.sjon的数据读出来并赋值给 data 

In [18]: with open(‘/tmp/dump.json’,’r’) as f:

…: data=json.load(f)

…:

In [19]: print data

{“ip_address”: “10.10.20.3”, “back_to_host”: “rac1”, “host_name”: “rac3”, “port”: 3306}

三 小结

  本文算是一篇学习笔记,主要对比了json.loads/json.load  , json.dumps/ json.dump 的使用差异 ,方便以后更好的使用json 。

以上为本次分享内容,感谢观看。

python中为什么用json有什么作用

今天我也在这个问题上纠结很久。最后才想明白,我来回答下。

网上很多网友总结了json模块的用法,但没说json模块有什么用,干嘛要有这个模块。可能都明白、太简单,觉得没必要说。但作为小白的我不明白,而且在练习使用load()和dump()时遇到错误。

首先纠正,json格式不是字符串。json与python里面的字典是一样的格式。

python的json模块四个方法的作用为:

dumps() # 把数据转成字符串;

loads() # 把字符串符号‘’去掉;

dump(x, f) # 将x的内容直接写入f,不改变格式;

load(x, f) # 读取f保存为x,同样不改变格式。

重点来了,f = open()下的read()的方法,输出是字符串,wirte()方法的输入也必须是字符串。

结论:因为f=open()下的读写方法都必须是字符串,很不方便。而非字符串的数据大多是json格式,所以就有了json模块。方便读写非字符串的数据。

因为这个目的,json模块的loads()和dumps()方法有些鸡肋,还造成困扰,因为明明json不是字符串,干嘛要转成字符串,另外dump()和load()方法表面上和它们不一样。只有明白json模块的目的,才会搞明白。

在python 3.6的说明文档中,把json模块放在了《7.2.文件读写》部分。我也是看到这里才去练习json模块。但出问题,有些糊涂,明白json模块的作用后,才更清楚干嘛把json模块放这里。

小白的浅见,若错误请指教,谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/23301.html

(0)
上一篇 2023-11-19
下一篇 2023-11-20

相关推荐

  • Python函数:在Excel中使用指数函数

    Python函数:在Excel中使用指数函数在Excel中,指数函数是一个常用的函数,用于计算一组数据的指数,可以帮助我们更好地理解数据的增长趋势。

    2024-03-21
    75
  • 自我介绍[亲测有效]

    自我介绍[亲测有效]Hello,博客园的大佬们大家好,我是江南,目前在一家国内一家上市软件公司work,现在主要在研究数据分析这块,在博客园潜水好多年了,也非常感谢博客园各位前辈们的指导(据不完全统计,本人百分之五十的b

    2023-03-09
    139
  • 吐血整理60个Redis面试题「终于解决」

    吐血整理60个Redis面试题「终于解决」1.Redis 是一个基于内存的高性能key-value数据库。 2.Redis相比memcached有哪些优势: memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的…

    2023-03-31
    149
  • Redis-位图_redis 槽

    Redis-位图_redis 槽关于位图,可能大家不太熟悉, 那么位图能干啥呢?位图的内容其实就是普通的字符串,也就是byte数组,我们都知道 byte 8 位无符号整数 0 到 255 说个场景。比如你处理一些业务时候,往往会存在

    2023-01-25
    140
  • 使用Python tkinter实现复选按钮

    使用Python tkinter实现复选按钮复选按钮(Checkbutton)是一种常见的GUI控件,它用于提供多项选择,让用户可以选择其中的任意一项或多项。Python的GUI库Tkinter提供了复选按钮的实现方法,可以轻松地在图形界面中添加和使用。

    2024-02-14
    101
  • Oracle 数据泵expdq,impdq[通俗易懂]

    Oracle 数据泵expdq,impdq[通俗易懂]使用数据泵技术实现逻辑备份 数据泵概述 数据泵(DATA PUMP)是一种在数据库之间、数据库与操作系统之间,高速传输数据的技术(10g推出)。 逻辑备份概述 逻辑备份是对数据库对象(如用户、表、存储

    2022-12-30
    137
  • markdown的python(markdown)

    markdown的python(markdown)Markdown本来就是依托于HTML,没有HTML就没有Markdown,因此正常的操作就是先将Markdown解析为HTML格式文本,再对其进行处理。

    2023-10-28
    133
  • MySQL基础篇(06):事务管理,锁机制案例详解[通俗易懂]

    MySQL基础篇(06):事务管理,锁机制案例详解[通俗易懂]本文源码: "GitHub·点这里" || "GitEE·点这里" 一、锁概念简介 1、基础描述 锁机制核心功能是用来协调多个会话中多线程并

    2023-02-08
    140

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注