python解析json文件

python解析json文件认识json数据json有两种数据结构:对象和数组。对象:用大括号表示,由键值对组成,每个键值对用逗号隔开。其中key必须为字符串且是双引号,value可以是多种数据类型。数组:用中括号表示,每个元素之间用逗号隔开。json中的字符串都要用双括号表示。json数据可以嵌套表示出结构更加复杂的数据。json格式与python格式的对应Python JSONd…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

  • 认识json数据
    json有两种数据结构:对象和数组。
    对象:用大括号表示,由键值对组成,每个键值对用逗号隔开。其中key必须为字符串且是双引号,value可以是多种数据类型。
    数组:用中括号表示,每个元素之间用逗号隔开。
    json中的字符串都要用双括号表示。
    json数据可以嵌套表示出结构更加复杂的数据。
  • json格式与python格式的对应
Python	           JSON
dict	           object
list, tuple        array
str	               string
int, float         number
True	           true
False	           false
None	           null
  • 将python数据与json数据相互转化
    导入json模块: import json;
    python数据转成json字符串:json_data = json.dumps(python_data);
    json字符串转成python对象:python_data = json.loads(json_data);
  • 一个例子
import json;
data1 = {
           'name' : 'jack',
            'age' : 20,
            'like': ('sing','dance','swim'),
            'score': {'chinese':80,'math':60,'english':99}
}

data2 = json.dumps(data1);
data3 = json.loads(data2);
print('原始数据');
print(data1);
print('转化成json格式');
print(data2);
print('再转化成python格式');
print(data3);
原始数据
{'name': 'jack', 'age': 20, 'like': ('sing', 'dance', 'swim'), 'score': {'chinese': 80, 'math': 60, 'english': 99}}
转化成json格式
{"name": "jack", "age": 20, "like": ["sing", "dance", "swim"], "score": {"chinese": 80, "math": 60, "english": 99}}
再转化成python格式
{'name': 'jack', 'age': 20, 'like': ['sing', 'dance', 'swim'], 'score': {'chinese': 80, 'math': 60, 'english': 99}}
  • python操作json文件
    1.把一个python类型数据直接写入json文件
    json.dump(data1, open(‘xxx.json’, “w”));
    2.直接从json文件中读取数据返回一个python对象
    data3 = json.load(open(‘xxx.json’));
  • 实例
import json;
# json.dump()  把数据写入json文件
# json.load()  把json文件内容读入python

data1 = {
           'name' : 'jack',
            'age' : 20,
            'like': ('sing','dance','swim'),
            'score': {'chinese':80,'math':60,'english':99},
            'love': None
}



#把python数据data1直接写入json文件中
json.dump(data1, open('jack.json', "w"));

#直接从json文件中读取数据返回一个python对象
data3 = json.load(open('jack.json'));
print(data3);

>>>>>
{ 
    'name': 'jack', 'age': 20,
    'like': ['sing', 'dance', 'swim'],
    'score': {'chinese': 80, 'math': 60, 'english': 99}, 
    'love': None
  }

json文件中的内容

{
  "name": "jack", 
   "age": 20,
   "like": ["sing", "dance", "swim"],
   "score": {"chinese": 80, "math": 60, "english": 99},
   "love": null
   }
  • 总结
    在用python解析json文件时可以用dumps函数先把python数据转化为json字符串,在用open函数自行把json字符串写入到文件中。也可以直接用dump函数把python数据写入到json文件中,这样更方便。
    两种写入文件的方法是等价的,相反读取文件时也有两种方法。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189561.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于中秋节的古诗_fontstrikethru

    关于中秋节的古诗_fontstrikethru现在网上的博客好多都是复制粘贴的,哎,能把问题讲清楚的不多。这里讲一下KFold.split话不多说,用例子说话:fromsklearn.model_selectionimportKFoldkf=KFold(n_splits=5,random_state=43,shuffle=True)a=[[1,2],[3,4],[5,6],[7,8],[9,10]]b=[1…

    2022年9月20日
    0
  • autocad二次开发资料总结

    autocad二次开发资料总结autocad二次开发AutoCAD(AutoComputerAidedDesign)是美国Autodesk公司研制开发的一款计算机辅助设计软件,它不是一款简单的绘图工具,而是一个复杂的计算机辅助设计系统。我们可以根据他灵活的开放性对其进行二次开发定制,让它更加适用于某一具体的设计领域。中文名AutoCAD二次开发外文名AutoCADDevelopmentSyst

    2022年10月23日
    0
  • scrollTop和scrollHeight属性「建议收藏」

    scrollTop和scrollHeight属性「建议收藏」———————————————————————检测滚动条是否滚动到底部:

    2022年7月24日
    5
  • 博弈论三个枪手的故事_博弈模型的三个基本要素

    博弈论三个枪手的故事_博弈模型的三个基本要素彼此痛恨的甲、乙、丙三个枪手准备决斗。甲枪法最好,十发八中;乙枪法次之,十发六中;丙枪法最差,十发四中。先提第一个问题:如果三人同时开枪,并且每人只发一枪;第一轮枪战后,谁活下来的机会大一些?一般人认为甲的枪法好,活下来的可能性大一些。但合乎推理的结论是,枪法最糟糕的丙活下来的几率最大。我们来分析一下各个枪手的策略。枪手甲一定要对枪手乙先开枪。因为乙对甲的威胁要比丙对甲的威胁更大,甲应该首…

    2022年10月15日
    1
  • 在字符串中查找id值MySQL

    在字符串中查找id值MySQL

    2021年10月17日
    44
  • Wireshark抓包详解[通俗易懂]

    Wireshark抓包详解[通俗易懂]简述wireshark是非常流行的网络封包分析工具,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。使用wireshark的人必须了解网络协议,否则就看不懂wireshark了。为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。 wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshar

    2022年9月6日
    3

发表回复

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

关注全栈程序员社区公众号