首页 > 编程语言 >python---json文件写入

python---json文件写入

时间:2024-07-27 23:52:05浏览次数:13  
标签:文件 python os 写入 --- json file data

 使用到的知识点:os模块执行linux指令、json.dump()、with open as f

代码实现

import sys

import os

import json

 

# 向json文件file中添加内容data,其中data的类型为字典

def write_json(file, data):

        # 如果文件存在,则删除

        if (os.path.exists(file)):

                os.system(f"sudo rm {file}")

                print(f"文件{file}删除成功")

        # 创建目标json文件file,并赋予权限

        # 如果在root用户执行,可以删除sudo

        # os.system():用于执行linux指令

        os.system(f"sudo touch {file} && sudo chmod 777 {file}")

        # 打开文件file

        with open(file, 'r+', encoding='utf-8') as f:

                # 把data数据写入json文件中

                json.dump(data, f, ensure_ascii=False, indent=2)

                print("文件创建成功并且已写入文件!!!")

 

if __name__ == '__main__':

        json_file = sys.argv[1]

        data = {}

        data['name'] = "张三"

        data['age'] = 18

        data['sex'] = "女"

        data['score'] = {}

        data['score']['语文'] = 89

        data['score']['数学'] = 91

        data['score']['英语'] = 98

        write_json(json_file, data)

代码摘录解读

1、with open(file, 'r+', encoding='utf-8') as f:

也可以使用写作f = open()。但是这样的话,如果存在文件异常时,文件无法关闭。而这里使用with的好处就是,即使打开失败,也可以自动执行f.close()来关闭文件

常见文件操作mode:

w: 只写入,如果文件已有内容,会先清除已有内容

r: 只读

a: 追加内容,在已有文件的末尾追加

r+: 用于读写,也会清除已有内容

这块内容很好查询,这里就不多列举了

2、json.dump(data, f, ensure_ascii=False, indent=2)

把内容data写入使用open打开的文件f中

ensure_ascii=False:如果写入中文汉字,会乱码。加上这个参数后则不会乱码

indent=2:如果没有这个参数,则会把内容在一行显示,不会换行和缩进;而这个参数的作用就是使写入内容换行、缩进。方便阅读

最终写入效果

 

标签:文件,python,os,写入,---,json,file,data
From: https://www.cnblogs.com/xiaopangyu/p/18327731

相关文章

  • vscode-react-javascript-snippets
    SnippetsSnippetsinfoEveryspaceinside {} and () meansthatthisispushedintonextline:) $ representeachstepafter tab.TypeScript hasowncomponentsandownsnippets.Usesearchorjusttype ts beforeeverycomponentsnippet.I.E. t......
  • 逆序对的数量 - 题解
    逆序对的数量时间限制:C/C++1000MS,其他语言2000MS内存限制:C/C++64MB,其他语言128MB描述给定一个长度为\(n\)的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第\(i\)个和第\(j\)个元素,如果满足\(i<j\)且\(a[i]>a[j]\),则其为一个逆序对;否则......
  • python错题记录:布尔运算与逻辑值检测
    一前言环境:python3.10win10二布尔运算与逻辑值检测1案例案例1如上,在布尔运算时,有些时候代码只会运算前面的一部分,剩下的部分根本不会运算。以前在练习算法代码时,就利用这个规则来减少代码的工作量案例2如上,之前好长一段时间,上面的布尔运算总是让我感到困惑布尔运......
  • python---字典遍历
    1、三种常见的字典遍历实现defget_key_value(dics):  '''遍历所有键值对'''  forkey,valueindics.items():    print(f"{key}:{value}")defget_keys(dics):  '''遍历所有的键'''  forkeyindics......
  • 黑盒测试---等价类划分法
    ​     等价类划分是一种典型的黑盒测试用例的设计方法,使用等价类划分,是将软件的输入域分为若干部分,然后从每个部分中选取少量具有代表性的数据进行测试,这样可以避免穷举产生的大量用例。自己理解首先是黑盒测试,就像一个黑盒子,盒子里面是什么,我们不需要关心,总之就是给......
  • 软件测试--软件生命周期
        软件和其他产品一样,都有一个从“出现”到“消失”的过程。这个过程就称作软件生命周期。就好像我们人类一样,从出生--少年--青年--中年--老年--死亡一样,可以将软件生命周期划分为6个阶段:问题定义、需求分析、软件设计、软件开发、软件测试、软件维护最后淘汰。下面我......
  • python基本语法三天速成系列day1(看完这篇你就会)
    注释注释是代码非常重要的一部分,它的主要作用有:解释代码目的:注释可以说明代码段或函数的目的和功能,帮助其他开发者快速理解代码的意图。复杂逻辑说明:对于复杂的算法或业务逻辑,通过注释可以解释这些逻辑是如何工作的,降低后续维护的难度。提高可读性:良好的注释可以使代码结......
  • Python学习笔记46:游戏篇之外星人入侵(七)
    前言到目前为止,我们已经完成了游戏窗口的创建,飞船的加载,飞船的移动,发射子弹等功能。很高兴的说一声,基础的游戏功能已经完成一半了,再过几天我们就可以尝试驾驶飞船击毁外星人了。当然,计分,游戏次数,背景音乐,开始启动等按钮的功能需要我们慢慢添加,这些功能不影响游戏的使用,影......
  • Python学习笔记45:游戏篇之外星人入侵(六)
    前言飞船模块的功能基本已经完成。今天继续完成子弹模块的功能。子弹模块子弹和飞船模块,在游戏逻辑中有一种生成与被生成的表面关系,因为子弹在游戏中是由飞船发射的。但是在我们实际抽象的过程中,飞船与子弹并不是is的关系,甚至可以说不是has的关系。因此我们需要将两个对......
  • YOLOv10全网最新创新点改进系列:ICCV 2023 - 动态蛇形卷积(Dynamic Snake Convolution)采
    YOLOv10全网最新创新点改进系列:ICCV2023-动态蛇形卷积(DynamicSnakeConvolution)采用管状结构,拉升模型小目标、遮挡目标检测效果,高效涨点!!!所有改进代码均经过实验测试跑通!截止发稿时YOLOv10已改进40+!自己排列组合2-4种后,考虑位置不同后可排列组合上千万种!改进不重样!!专注A......