Python json模块_anfen1088的博客-程序员宅基地

技术标签: python  json  数据结构与算法  

JSON是一种轻量级数据交换格式,一般API返回的数据大多是JSON、XML,如果返回JSON的话,将获取的数据转换成字典,方面在程序中处理
python2.6版本开始加入了JSON模块,python的json模块序列化与反序列化的过程分别是encoding和decoding。

 

encoding:把一个python对象编码转换成Json字符串。
decoding:把json格式字符串编码转换成python对象。

python3可以使用json模块对json数据进行编码解码,包含以下两个函数
json.dumps(): 对数据进行编码
json.loads(): 对数据进行解码

 

实例:

>>> import json
>>> data = {'num':100,'name':zhangsan}
>>> json_str = json.dumps(data)   ##对数据进行编码
>>> print("Python data: " ,data)
Python data: {'num': 100, 'name': 'zhangsan'}
>>> print("JSON object: " ,json_str)
JSON object: {"num": 100, "name": "zhangsan"}

 


使用json.load 将json编码的字符串转换成python数据结构
实例:
>>> data = {'num':100,'name':'zhangsan'}
>>> json_str=json.dumps(data)
>>> json_str
'{"num": 100, "name": "zhangsan"}'
>>> data2=json.loads(json_str)
>>> data2
{'num': 100, 'name': 'zhangsan'}

 

 

如果要处理的是文件而不是字符串,可以使用json.dump和json.load来处理数据

json.dump()存储,json.load读取

实例
json.dump()

import json
numbers = [2,3,5,7,11,13]

filename = 'numbers.json'
with open(filename,'w') as f_obj:
       json.dump(numbers,f_obj)   ##将number列表写入到number.json中

 

 

json.load()

 

import json

filename = 'numbers.json'
with open(filename) as f_obj:
      numbers = json.load(f_obj)

print(numbers)

 

转载于:https://www.cnblogs.com/kubernets/p/8966099.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/anfen1088/article/details/102248797

智能推荐

hashmap 允许key重复吗_关于HashMap集合 Key值相同时被覆盖问题( java中key值可以重复的map:IdentityHashMap)..._weixin_39774556的博客-程序员宅基地

关于map集合,key值相同时,value值会被覆盖,查阅API相关的说明.如果原来的key已经存在,则直接将新值覆盖到原值上面.那么问题来了,有时候后台需要我们发送json字符串数组,这时候就需要map集合的key值时相同的,网上找了很多方法,都是说重写key的hashCode()和map的put()方法,就可以实现对于相同key下多个value的存储.而我推荐的方法是使用IdentityHas...

软件版本_紫云的博客的博客-程序员宅基地

这些是转载的alpha 内部测试版 beta 外部测试版 demo 演示版 Enhance 增强版或者加强版 属于正式版 Free 自由版 Full version 完全版 属于正式版 shareware 共享版 Release 发行版 有时间限制 Upgrade 升级版 Retail 零售版 Cardware 属共享软件的一种,只要给作者回复一封电邮或

linux增加默认命令,如何将Linux命令设置成键盘快捷键?_weixin_39628380的博客-程序员宅基地

我们都知道,Linux系统操作大部分都需要使用命令完成,但命令多了操作起来较为繁琐,如果将常用命令设置成键盘快捷方式则简单很多,下面小编就给大家介绍下将Linux命令设置成键盘快捷键的方法,感兴趣的朋友一起来看看吧。可以把任何命令或命令的组合指定给键盘上的某个键,可以是Alt+[A-Z],Ctrl-[A-Z], Alt+Shift+[A-Z], F1-F12, Ctrl-F[1-12], Alt-...

Redis数据结构(一):RedisObject、String(SDS)_怪兽吃糖果的博客-程序员宅基地_redisobject 大小

RedisObject    所有的 Redis 对象 都有下面的这个头结构。不同的对象具有不同的类型 type (4bit)。同一个类型的 type 会有不同的存储形式 encoding (4bit)。为了记录对象的 LRU 信息,使用了 24 个 bit 来记录 LRU 信息。每个对象都有个引用计数,当引用计数为零时,对象就会被销毁,内存被回收。ptr 指针将指向对象内容(body)的具体存储位置。这样一个 RedisObject 对象头结构 需要占据 16 字节的存储空间。struct Redis

一个自制X230白名单的方法_天王的博客-程序员宅基地_x230 刷白名单

以下地址是英文原帖的地址http://www.bios-mods.com/forum/Thread-Solved-REQUEST-Lenovo-X230-wlan-whitelist-removal以下地址是国人折腾的地址http://www.51nb.com/forum/viewthread.php?tid=1415423&extra=&page=1详情见6楼。

HarmonyOS_鸿蒙+行政+JAVAEE的博客-程序员宅基地

O黑马程序员 2021最新鸿蒙HarmonyOS 2.0开发教程,一套搞定O千锋教育全网首套鸿蒙HarmonyOS 2.0应用开发实战教程丨锋迷商城项目

随便推点

实现按层次遍历二叉树_AlexCookie的博客-程序员宅基地_按层遍历二叉树

实现按层次遍历二叉树主要代码:void sequence(blink bt){ queue<blink> s; s.push(bt); while(s.empty() == 0)//该函数返回0说明不为空(为空 会返回1) { printf("%c",s.front()->data);//打印 将出队结点 的元素值 s.push(s.front()->lchild); //左孩子 进队 s.push(s.front()->rchi...

opencv1.2将BGR变成RGB_位沁QQ3423988359的博客-程序员宅基地

So when you display an image loaded in OpenCV using pylab functions, you may need to convert it into RGB mode. ( I am not sure if any easy method is there). Below method demonstrate it:import cv2import numpy as npimport matplotlib.pyplot as pltimg = c

php curl模拟post提交,php curl模拟post提交数据的例子_weixin_39883129的博客-程序员宅基地

header("Content-type: text/html; charset=utf8");/** 提交请求* @param $header array 需要配置的域名等header设置 array("Host: devzc.com");* @param $data string 需要提交的数据 'user=xxx&qq=xxx&id=xxx&post=xxx'.......

Vue学习笔记(2)vue指令_XmdRty的博客-程序员宅基地

live-server使用npm install live-server -g    //全局安装live-serverlive-server    //启动v-if&v-showv-if和v-show都是vue的内布指令v-if用来判断是否加载html的domv-show只是调整css中display的属性,dom会加载,是否显示由css控制v-sho

字节跳动面试题.二叉树最左下节点、二叉树最左节点、二叉树每行最左边节点_ccluqh的博客-程序员宅基地_二叉树最左边节点

二叉树最左下节点、二叉树最左节点:二叉树每行最左边节点方法一:# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self....

C++菜鸟常见错误整理(第二天)_hello白白的博客-程序员宅基地

本人目前还是学生,能力有限,有不足或者错误的地方欢迎大家指正,谢谢大家!1、强制类型转换     (int)((double)9/2)-1即double 9,把9转换成double,然后/2,然后-1,最后强制转换成int2、关于switch循环     int k=1,c=0;  switch(k)  {default:c+=k;  case 2:c++;break;  }由于d

推荐文章

热门文章

相关标签