Python常见的数据文件格式处理有4种(CSV,JSON,XML.HTML),我们前面已经讲了CSV文件的处理,今天我们来讲一下JSON文件的处理,最后用一个实战小例子,来分析一下程序员中的facebook GitHub上最火的开源项目是啥.

1.什么是JSON文件和Python数据的区别

俗话说有web的地方就有javascript(怎么感觉像电影里的台词,有人的地方就有江湖),那么大名鼎鼎的javascript的存取数据格式是什么的, 对就是JSON.JSON是一种轻量级的数据交换格式,简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言,非常方便,同时也容易解析,所以我们一定要学会Python中如何处理JSON文件。

1).JSON和Python格式对比

简单说:JSON的编码格式和Python很类似

JSON的编码支持的基本类型有None,bool,int,float,和str,当然也包含字典,列表和元组.

比如:JSON最常用的格式是对象的 键值对,比如这样的

'["foo", {"bar": ["baz", null, 1.0, 2]}]'

注意的是JSON键值key是字符串(字典中的任何非字符串键都会在编码的时候转换为字符串)

当然也有一些小的区别True会映射成true

False会映射成false

None会映射成null

2.Python中处理JSON的4个重要函数

Python中有一个内置模块JSON,可以非常方便的处理JSON文件,其中有4个比较重要也是最常用的函数,下面详细介绍一下

1).dumps()

dump函数就是把Python字典的数据转换成json格式的数据

大家发现没有,JSON有一个显著的特征字符串都有双引号,另外None变成了null,True变成了true

dumps里面还有一些其他的参数,比如可以去掉一些空的字符

import json

list1=[10, 20 ,'abc',{'name':'Leo','age':20}]

print json.dumps(list1,separators=(',',':'))

>>[1,2,"abc",{"age":20,"name":"Leo"}]

输出的字典的键值排序

l3={"c": 0, "b": 0, "a": 0}

print json.dumps(l3,sort_keys=True)

>>

{"a": 0, "b": 0, "c": 0}

2).loads()

loads()函数可以把JSON数据转成Python数据

变成了Python数据之后,就可以自由的使用字典

print jsonDataAsPythonValue['name']

>>Lili

3).dump()

dump函数和dumps函数的区别在于dump文件把python数据写到json文件里面,里面会多一个文件句柄

4).load()

load()和loads()函数的差别也是一个读json数据,一个是读json文件句柄

3.获取Github上的最火开源项目

Github上有很多开源的项目,对于喜欢的用户可以加星(star),表示支持,我们今天就用一个小程序来看一下那个是最牛最火的项目

1).首先我们写一个函数去获取JSON文件

这里我们用request库,提供一个github上的url就可以非常方便的获取了

>>

[u'total_count', u'items', u'incomplete_results']

Total Project:1607749

Repositories returned:30

total_count: 1607749

Github上有一百六十万多的项目,那有同学会问,怎么提供一个url就可以获取了啊,这里用了一个叫做Web Api的机制,请求的数据将以易于处理的格式(如JSON或CSV)返回,可以非常方便的让机器获取.

2).显示最火的项目

上面的函数已经把JSON文件处理了,并且变成了一个庞大的字典repo_dicts这其实一个很大的列表,每个列表里面都一个字典,里面有很多key,这里我们最关心的是:项目的名字

发起者

有多少个星

创建的时间

大概的描述

>>

Followed are info about each repo:

Name:awesome-python

Owner:vinta

Stars:32325

created_at:2014-06-27T21:00:06Z

Description: A curated list of awesome Python frameworks, libraries, software and resources

最火的是awesome-python项目,这个项目很牛收获了32325个星

欢迎大家关注微信公众号 【菜鸟学Python】,更多好玩有趣的Python原创教程,趣味算法,经验技巧,行业动态,尽在菜鸟学Python,一起来学python吧

历史人气文章

python读json文件太大github_GitHub上最火的开源项目是啥|JSON文件实战处理相关推荐

  1. pdf文件太大无法上传怎么办?

    我们在工作和学习中经常需要通过网站/APP等上传PDF文件,相信大部分人都遇到过,由于为了缓解服务器的压力,很多网站都会限制PDF的大小,例如大于10M的PDF文件不能上传等,这时候我们该怎么办呢?我 ...

  2. python mssql github_GitHub上最热门的开源项目都在这里了

    最近整理了一些在GitHub上比较热门的开源项目 关于GitHub,快速了解请戳这里 其中涵盖了:学习教程,面试总结,实用工具,框架,机器学习等 东西比较杂,要学的东西也比较多,先存着,然后一点一点学 ...

  3. java上传过大图片超时_解决.net项目中上传的图片或者文件太大无法上传问题

    最近做项目的时候  用户提出要上传大图片  一张图片有可能十几兆  本来用的第三方的上传控件  有限制图片上传大小的设置 以前设置的是2M  按照用户的要求  以为直接将限制图片上传大小的设置改下就可 ...

  4. Win7提示文件太大无法放入回收站怎么办

    我们经常会将没有的文件拖到回收站去,但是有时候会遇到文件拖进回收站时,系统提示该文件太大无法放进回收站,那么Win7提示文件太大无法放入回收站怎么办呢?今天小编就跟大家分享Win7系统提示文件太大无法 ...

  5. 文件太大notepad 打不开怎么办

    文件太大notepad 打不开怎么办 notepad++软件打开日志,文件一大就打不开,记事本倒是可以打开,但是很多日志分析不了,比如某个语句出现次数,查找替换等等.目前我找到了一个替换的办法就是用S ...

  6. windows的pagefile.sys是什么文件?pagefile.sys文件太大如何移动到D盘中?

    在C盘系统下,有一个命名为pagefile.sys的文件占用C盘太大的空间,不少用户怕删除pagefile.sys文件之后会对系统造成影响,而不少用户想要将pagefile.sys文件移动到D盘中.那 ...

  7. mac u盘文件过大 拷贝不进去_mac文件太大无法复制到u盘怎么办 mac文件太大无法复制到u盘解决方法...

    类型:Mac图形图像大小:23.3M语言:中文 评分:10.0 标签: 立即下载 mac文件太大无法复制到u盘怎么办?mac文件太大无法复制到u盘解决方法.最近很多用户在询问mac文件太大无法复制到u ...

  8. Pyinstaller打包python文件太大?教你三个小技巧有效减小文件体积

    简介 有时候需要在未安装Python环境的平台上运行py程序,使用pyinstaller打包很方便,但打包后的可执行文件实在是太大了.原因在于打包时pyinstaller本就已经关联了很多的pytho ...

  9. Python打包exe程序(pyinstaller)以及打包文件太大的解决方法

    编写的python项目,如何在没有python环境的电脑中运行? 打包成exe可执行程序即可 本文章可以教会你如何将python项目打包成exe可执行程序,以及打包后文件太大该如何解决! 来了来了,开 ...

最新文章

  1. thinkphp用phpexcel读取excel,并修改列中的值,再导出excel,带往excel里写入图片
  2. 在某游戏公司面试游戏运营的感受
  3. [luogu4128][shoi2006]有色图
  4. [UE4]性能优化指南(程序向)
  5. 《零基础》MySQL GROUP BY 语句(十九)
  6. 超级灰色按钮克星1.4.1309.12
  7. iOS 之NSOperation(一)
  8. FRM-10102错误解决
  9. vi毕业设计参考文献优秀范例
  10. 【NVMe2.0b 3】NVM 控制器架构模型
  11. vue实现简单搜索功能
  12. 物联网应用平台开发——项目总结报告
  13. 分布式基础——GFS(Google file system)
  14. 【有利可图网】设计配色方案之紫色系篇
  15. Python 运维自动化之服务器信息采集
  16. 小米手环解锁MacOS系统笔记本MacBookPro
  17. 微信商城小程序系统设计与实现
  18. 综合能源服务认证技术规范有哪些单位参编?
  19. Cloning into ‘XXXX‘... fatal: protocol ‘?https‘ is not supporte 报错解决方法
  20. java如何读取word文档内容并修改指定内容文本颜色

热门文章

  1. ArrayDeque 双端队列
  2. iscroll上拉加载、下拉刷新
  3. WPF TextBox只能输入数字
  4. [系统审计]SAP HANA 中的系统审计策略管理
  5. SpringBoot与Docker集成
  6. CentOS 7添加开机启动服务/脚本
  7. BGP——OSPF与BGP协议联动(出现问题+解决方案配置)
  8. npm切换淘宝源,yarn切换淘宝源
  9. 【Nginx那些事】nginx配置实例(三)动静分离
  10. git clone 指定分支