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)
上一篇 2026年4月13日 下午1:45
下一篇 2026年4月13日 下午1:45


相关推荐

  • Unity Shader-描边效果[通俗易懂]

    简介描边效果是游戏里面非常常用的一种效果,一般在选中物体或者NPC的时候,被选中的对象就会显示描边效果。比如最近又跑回去玩了玩《剑灵》,虽然出了三年了,在现在的网游里面画面仍然算很好的。还有就是最常见的LOL中的塔,选中时就会看到很明显的描边效果:

    2022年4月11日
    39
  • 有空考个SCSA

    有空考个SCSA有空考个SCSA玩玩,反正也想学Solaris~不过培训太贵了,裸考算了~

    2022年6月20日
    36
  • Activity中setContentView过程

    Activity中setContentView过程Windows概念Android手机中所有的视图都是通过Window来呈现的,像常用的Activity,Dialog,PopupWindow,Toast,他们的视图都是附加在Window上的,所以可以这么说——Window是View的直接管理者。Activity中加载布局Activity中加载布局,都是通过在onCreate中调用setContentView方法开始:

    2022年6月26日
    28
  • 放弃文华财经,自己编程实现期货程序化交易

    放弃文华财经,自己编程实现期货程序化交易一 目前期货程序化现状 由于有免费的 CTP 接口 期货程序化交易目前比较普遍 很多人都尝试过在文华财经 金字塔之类的软件上回测和编写实盘策略 期货程序化交易有很多优点 程序会按照设计自动执行 不受任何其它因素干扰 设计正确的请假下不会出错 借助于程序 交易速度更快 远远超过人工下单的速度 节省人工成本 一个策略可以部署多个机器人 特别当前期货存在夜盘的情况下 耗费非常大的人力

    2026年3月19日
    2
  • qlineedit设置光标_光标选不中

    qlineedit设置光标_光标选不中QLineEdit的光标当失去焦点后仍然显示的问题:  在lineedit和其它按钮之间切换焦点时,注意lineedit的设置有顺序,否则当失去焦点时仍有光标闪,或者得到焦点无光标。  使lineedit有效:lineedit->setEnabled(true);lineedit->setFocus();    使lineedit无效:l…

    2022年10月5日
    4
  • 用导数的定义求指数函数的导数_对数函数导数的推导

    用导数的定义求指数函数的导数_对数函数导数的推导指数函数的性质  先来复习一下中学的课程:指数函数的导数  对f(x)=ax求导:  ax右侧的那个极限似乎没有办法继续简化了,如果这个极限看作关于a的函数(之所以将极限看作关于a的函数,是因为在这个极限中,a是未知的,Δx是已知的):  函数在某一点导数的几何意义是该点处切线的斜率,所以M(a)也就是ax在x=0处切线的斜率。  如果y=2x,…

    2025年8月5日
    5

发表回复

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

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