为什么要学习用Python解析JSON数据?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了为什么要学习用Python解析JSON数据?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2238字,纯文字阅读大概需要4分钟。
内容图文
“JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。”——《百度百科》
我们在爬取网站的时候,经常会遇到获取了html却没有在标签里找到数据的情况。这种情况大概率html只是一个框架,而数据是JavaScript脚本从服务器获取JSON数据后再把数据写入标签的。所以我们直接获取html会找不到需要的数据。解决的方法也不难,使用浏览器的开发者模式可以看到网页对服务器发出的请求,找到获取数据的请求后模拟该请求即可从服务器获取JSON数据。获取JSON数据后即可用json库转化为python的数据类型。下面是JSON和python数据类型的对照表。
Python | JSON |
dict | object |
list,tuple | array |
str,unicode | string |
int,float | number |
True | true |
False | false |
None | null |
JSON库有4个常用的方法,下面来一一介绍给大家。
json.loads()该方法是将JSON字符串转化为python数据类型。
#导入json库
import json
#定义JSON格式的字符串
json_str?=?'{"测试":?123}'
#使用loads()将JSON字符串转化为python数据类型,将会返回{"测试": 123}
json.loads(json_str)
json.dumps()该方法是将python数据类型转化为JSON字符串。
#导入json库
import json
#定义一个字典
dic?=?{"测试":?123}
#使用dumps()将python字典转化为JSON字符串,将会返回'{"测试":?123}'
#ensure_ascii参数设置为False时允许有中文
json.dumps(dic, ensure_ascii=False)
json.load()该方法是将文件中的JSON字符串转化为python数据类型。
#导入json库
import json
#定义JSON格式的字符串
json_str?=?'{"测试":?123}'
#将字符串写入文件
with?open(file,?'w',?encoding='utf-8') as f:
? ?f.write(json_str)
#使用load()从文件读取JSON字符串转化为python数据类型,将会返回一个字典
with open(file, 'r', encoding='utf-8') as f:
? ?j = json.load(f)
json.dump()该方法是将python数据类型转化为JSON字符串后写入文件。
#导入json库
import json
#定义一个字典
dic = {"测试": 123}
#使用dump()将python数据类型转化为JSON字符串后写入文件,indent参数设置缩进
with open(file, 'w', encoding='utf-8') as f:
????json.dump(dic,?f,?ensure_ascii=False, indent=4)
获取了字典后,可以逐层遍历字典item去查看数据所在的位置和关联的键,这样就能用代码把数据“揪”出来了。
总结:1.loads(),dumps()这两个后面带s的方法就是跟字符串有关的方法2.创建JSON格式的字符串时只能用双引号3.有中文时需要设置ensure_ascii参数
4.indent参数能设置缩进的空格
内容总结
以上是互联网集市为您收集整理的为什么要学习用Python解析JSON数据?全部内容,希望文章能够帮你解决为什么要学习用Python解析JSON数据?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。