python 读取和操作json

Python、nodejs读取json文件 首先读取出来的都是字符串,不是对象或者字典,所以需要一步转换。同理,需要存储的时候也需要这样的操作。否则操作就会变形。 1.nodejs读取json文件(分异步、同步) 同步的方法读取 2.Python读取json文件 ... 阅读详情

python操作json的封装,可以读取和设置指定的key的值,直接上代码:

# coding=utf-8
""" json工具类 """
import os
import json
import sys
import getopt

def store_json(data, file_path):
    """ 保存json到文件 """
    with open(file_path, 'w') as fw:
        # 将字典转化为字符串
        # json_str = json.dumps(data)
        # fw.write(json_str)
        # 上面两句等同于下面这句
        json.dump(data, fw)


def load_json(file_path):
    """ load json data from file """
    if not os.path.exists(file_path):
        return
    with open(file_path, 'r') as f:
        data = json.load(f)
        return data


# def set_value(file_path, key, value):
#     target_j = load_json(file_path)
#     if not target_j:
#         target_j = {}
#     target_j[key] = value
#     store_json(target_j, file_path)


def set_json_value(data, key, value):
    if key.endswith("."):
        key = key[0:(len(key) - 1)]
    if key.find(".") > -1:
        f_index = key.index(".")
        key1 = key[0:f_index]
        key2 = key[(f_index + 1):len(key)]

        if not key1 in data:
            data1 = {}
        else:
            data1 = data[key1]
        return set_json_value(data, key1, set_json_value(data1, key2, value))
        # data[key1] = data1
        # return data
        # print(json.dumps(data))
    else:
        if not data or (not type(data).__name__ == 'dict'):
            data={}
        # print("key:"+key)
        # print("data:"+key)
        data[key] = value
        return data


def set_value(file_path, key, value):
    target_j = load_json(file_path)
    if not target_j:
        target_j = {}
    data = set_json_value(target_j, key, value)
    # print(json.dumps(data))
    store_json(data, file_path)


def get_json_value(data, key):
    if not data:
        return None
    if key.endswith("."):
        key = key[0:len(key) - 1]
    if key.find(".") > -1:
        f_index = key.index(".")
        key1 = key[0:f_index]
        key2 = key[(f_index + 1):len(key)]
        if not key1 in data:
            return None
        return get_json_value(data[key1], key2)
    else:
        if not key in data:
            return None
        return data[key]


def get_value(file_path, key):
    target_j = load_json(file_path)
    if not target_j:
        target_j = {}
    return get_json_value(target_j, key)


def main():
    key_name = ""
    file_path = ""
    value = ""
    option = ""
    try:
        opts, args = getopt.getopt(sys.argv[1:], "hf:k:v:p:", ["file=", "key=", "value=", "option="])
    except getopt.GetoptError:
        print('jsonutil.py -f <file> -p <operation> -k <key> -v <value>')
        sys.exit(2)
    for opt, arg in opts:
        if opt == '-h':
            print('jsonutil.py -f <file> -p <operation> -k <key> -v <value>')
            sys.exit()
        elif opt in ("-f", "--file"):
            file_path = arg
        elif opt in ("-k", "--key"):
            key_name = arg
        elif opt in ("-v", "--value"):
            value = arg
        elif opt in ("-p", "--option"):
            option = arg
    if option == "set":
        set_value(file_path, key_name, value)
        # target_j = load_json(file_path)
        # if not target_j:
        #     target_j = {}
        # target_j[key_name] = value
        # store_json(target_j, file_path)
    else:
        if not os.path.exists(file_path):
            return
        else:
            # target_j = load_json(file_path)
            # print(target_j[key_name])
            print(get_value(file_path, key_name))


if __name__ == "__main__":
    main()

json:{"a":{"name":"lisi","age":10}}

读取示例: python jsonutil.py -f test.json -p get -k a.name

设置值示例: python jsonutil.py -f test.json -p get -k a.name -v zhangsan

 

通讯模块_三菱IQ-R PLC串口通讯模块RJ71C24进行Modbus-RTU通讯 在日常的选型中,很多电气工程师咨询我,三菱iQ-R系列有没有Modbus通讯模块,我在这里可以肯定的回复您,这个肯定是有的;我们共有三种可以选择分别是RJ71C24、RJ71C24-R2、RJ71C24-R4。RJ71C24系列支持MC协议通信、通信协议通信、无顺序协议通信、双向协议通信全、MODBUS通信。当我帮助他们选型之后,他们在使用的时候,又是一头雾水。那么今天我抽一些时间讲解一RJ71... 阅读详情

相关推荐

【v4l2】在Android SDK中交叉编译v4l2-ctl

为调试Android设备中camera的相关功能,需要引入v4l2-ctl工具。由于厂商提供的Android SDK源码中未集成v4l2-utils(包含v4l2-ctl以及其它组件的工具包),故需要下载v4l2-utils源码,并在Android SDK中交叉编译生成v4l2-ctl可执行文件。本文讲述其过程步骤。

rentong123的博客 1326

python中endswith函数什么意思_Python中endswith()函数的基本使用

函数:endswith()作用:判断字符串是否以指定字符或子字符串结尾,常用于判断文件类型相关函数:判断字符串开头 startswith()一、函数说明语法:string.endswith(str, beg=[0,end=len(string)])string[beg:end].endswith(str)参数说明:string: 被检测的字符串str: 指定的字符或者子字符串(可以使用元...

weixin_34757654的博客 4346

激光雷达测距方式全解析:ToF、三角测距和FMCW到底怎么选?

本文深度解析激光雷达三种主流测距方式(ToF、三角测距和FMCW)的技术原理、环境适应性和成本模型,提供场景化选型决策指南。通过对比各技术在精度、抗干扰能力和维护成本等方面的表现,帮助工程师在自动驾驶、工业检测和消费电子等领域做出最优选择。

qqq44的博客 721

startsWith(),endsWith()的作用,用法,判断字符串a 是不是以字符串b开头或结尾

<br />if(a.startsWith(b))   //判断字符串a 是不是以字符串b开头.  Java代码 if(a.endsWith(b))   //判断字符串a 是不是以字符串b结尾. 

lijian260的专栏 1070

树莓派驱动DLPDLCR230NPEVM+framebuffer显示图片

DLPDLCR230NPEVM DLP® LightCrafter™ Display 230NP 是一个易于使用的紧凑型即插即用评估平台,适用于消费类产品、工业、医疗和物联网 (IoT) 市场中的各种超便携显示应用。此评估模块 (EVM) 采用 DLP230NP 芯片组,该芯片组由DLP230NP.23 1080p DMD、DLPC3436显示控制器和DLPA2005PMIC/LED 驱动器组成。此 EVM 外形小巧,配备生产就绪型光学引擎以及支持 18 位 RGB 并行视频接口...

L_Y000的博客 2620

Dify + mem0插件实战:如何让AI记住你的饮食习惯(附完整代码)

本文通过Dify平台与mem0插件实战,详细演示了如何为AI助手构建长期记忆系统,使其能记住并理解用户的复杂饮食习惯(如过敏源、饮食偏好)。文章提供了完整的工作流配置与Python代码示例,帮助开发者实现跨会话的个性化饮食建议,解决AI对话中的“健忘”问题。

lg888的博客 1096

ExtJS -- 各种Store

//ArrayStore store: new Ext.data.ArrayStore({ fields:[ 'sexTypeid', 'sexTypename' ], data:[["MAN","男"],["WOMEN","女"],["NONE","男女不限"]] }) //JsonStore new Ext.data.Js

liangjm99的专栏 559

CKS-CN考试之路----11

显然是alpine-b的镜像有libcrypto3-3.1.4-r5。新版本发布老版本会被回收,此时pod只剩下2个container。我们依次测试是哪个镜像里包含libcrypto3。可以看到alpine的pod有3个副本.

Q先生 654

Store获取json字符串

function storeToJson(jsondata) { var listRecord; if (jsondata instanceof Ext.data.Store) { listRecord = new Array(); jsondata.each(function(record) { listRecord.push(record.data);

1065

大模型自我认知微调的实战教程

本文主要介绍了大模型自我认知微调的实战教程,希望对学习大语言模型的同学们有所帮助。微调成功并保留原有能力的截图如下所示: 文章目录 1. 前言 2. 配置环境 2.1 安装虚拟环境 2.2 安装依赖库 3. 实战代码 3.1 配置数据集 3.2 lora微调

herosunly的博客 4万+

java项目反编译工具记录,共计6个工具

java项目反编译工具记录,共计6个工具

橙-极纪元-JJYCheng 1802

store获取json数据格式

store一般作为grid的数据源, 解析data中的数据 reader:{type:'json',rootProperty:'data'}当想获取json数据data数据的同时获取success或msg等和data同层次的数据时使用response.proxy.reader.rawData.success获取response为ajax响应//订单列表Storevar store = Ext.

周厉的技术人生 1223

OmniDrive(3):逐行代码详解

模型效果: 端到端联合规划与推理 接下来,简单介绍下训练的配置 1.1 模型配置 模型基于sparse query based的3D Bev感知框架StreamPetr ,用query来编码动态目标(如车辆、行人)和静态地图元素(如车道线)。(1) tran、test和val数据配置 指定真值的文件路径: ann_file 指定输出处理的pipeline: 训练使用, test 和val使用 指定是否需要时序训练seq_mode (2)数据处理pipeline 自定义的Dataset 通过类实现,训

@bangbang的博客 721

【python实操】python小程序之文件操作的JSON读取和JSON修改

python小程序之文件操作的JSON读取和JSON修改

ya的博客 2260

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

pythonjson中list操作_在Python上读取和操作JSON元素

我是python新手,我需要读取和操作json文件中的元素,但我不断收到错误,而且不知道如何前进。 这是我的代码:123import jsonwith open('file.txt', 'r') as json_data:d = json.load(json_data)数据集的示例:1234567891011121314151617[{'id': 1,'name': 'a','city': 'Pa...

weixin_39841709的博客 1916

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

python3文件读写操作和使用json读取数据

1.改变工作目录 import os os.chdir('/home/zq/logs')//Linux下的文件路径,根据自己系统情况来 print(os.getcwd()) 2.txt文件读取 data=[] fr=open('/home/zq/logs.txt') for line in fr.readlines(): line=line.strip() data_line...

3243

python生成json配置文件——读取文件夹内容并获得某一个文件的路径,以时间戳的方式创建文件夹,列表操作:增加和清空,json文件的写入操作,可写入多种格式,读取json文件并将内容分割出来

import import os import json import shutil import datetime from math import * 读取文件夹内容并获得某一个文件的路径 #rootdir 文件的根目录 rootdir = 'E:\\class_22' for parent, dirnames, filenames in os.walk(rootdir): # 三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字 f

qq_42832272的博客 929

无涯教程-Python - 处理JSON数据

JSON文件以人类可读格式将数据存储为文本, JSON代表JavaScript对象 符号,Pandas可以使用 read_json 函数读取JSON文件。通过将以下数据复制到文本编辑器(如记事本)中来创建JSON文件。保存扩展名为 .json 的文件,并将文件类型选择为所有文件(*.*)。

无涯教程 1066

如何在 Python 中读取 JSON 文件

JSON 文件(JavaScript 对象表示法文件)是一种用于存储和交换数据的文本文件。它使用键值对以结构化且可读的方式存储数据,其中每个键都与一个值相关联。这使得人类和机器可以轻松读取和写入数据。JSON 用于 Web 应用程序、API 和配置,因为它轻量且易于使用。以下是一个简单 JSON 文件的示例:“名称”: “简·史密斯”,“年龄”: 28,“是开发者”: true,“语言”: [“Python”, “JavaScript”, “SQL”]

wix19970108018的博客 2675

【Python】json文件的读取

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于将结构化数据进行传输和存储。它基于JavaScript语法,但可以被多种编程语言解析和生成。json 基于文本,独立于语言的轻量级的数据交换格式基于文本,是一个文本文件,不能包含图片,音视频等独立于语言,不是某个语言特有的,每种编程语言都可以使用的轻量级,相同的数据,和其他格式相比,占用的大小比较小数据交换格式,后端程序员 给前端的数据 (json,xml,ProtoBuf等)

云泽野の编程日记 1万+

如何在 Python 中读取和写入 JSON 文件

在本文中,我们将讨论如何使用 Python 读取、写入和操作 JSON 文件。总之,Python 的 json 模块使处理 JSON 文件变得简单。您可以使用 Python 的内置函数读取、写入和操作 JSON 数据,使其成为在 Python 项目中处理 JSON 数据的强大工具。您可以读取 output.json 文件,通过添加新的键值对来修改数据字典,然后将其另存为另一个 JSON 文件。要在 Python 中将数据写入 JSON 文件,您也可以使用 json 模块。读取 JSON 文件。

weixin_38258315的博客 675

【Python 第六篇章】字符操作和读取文件

模块,使得我们可以很方便地将Python中的结构化数据(如字典、列表等)转换为JSON格式的字符串,以及将JSON格式的字符串解析回Python中的结构化数据。无论是将Python结构化数据转换为JSON字符串,还是将JSON字符串解析回Python对象,都只需要几行代码即可完成。每个字符串代表文件中的一行,包括末尾的换行符(如果有的话)。如果你想要从JSON文件中读取数据,并将其转换回Python中的结构化数据(如字典),可以使用。方法会读取文件的全部内容,并将其作为一个字符串返回。关键字格式化字符串。

Tsing 725

【Python基础】Python中处理JSON文件的全面指南

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。在Python中,处理JSON数据是一项常见且重要的任务,特别是在数据科学、网络编程和API交互等领域。本文将深入探讨Python中如何处理JSON文件,包括读取、解析、修改和写入JSON数据。

climber1121的博客 1万+

JSON文件的读取操作详解

python读取json字符串 python操作json文件 下面有一段json形式的字符串,它是str类型,通过python转化成可操作的数据结构 import json str='''[{ "name":"kingsan", "age":'23' }, {"name":"xiaolan", "age":'23' }] ''' print(type(str)) data = json.loads...

abc152176的博客 2万+

使用Python解析JSON

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。Python3 中可以使用 json 模块来对 JSON 数据进行编解码,主要包含了下面4个操作函数: 提示:所谓类文件对象指那些具有read()或者 write()方法的对象,例如,f = open('a.txt','r'),其中的f有read()方法,所以f就是类文件对象。 在json的编...

pengjunlee的博客 13万+

python读取json文件转化为list_python怎么读取json文件内容

如何用python读取json文件里指定的数据JSON文件who.json内容如下: { "name": "mss", "version": "1.0.0", "deimport jsonwith open('who.json', 'r') as f: data = json.load(f) dependencies = data['dependencies'] for k, v in depen...

weixin_39548972的博客 972

使用 Python 对 JSON 数据进行读写操作

无论是从文件中读取 JSON 数据,还是直接解析字符串形式的 JSON,Python 的json模块都提供了极为简便的操作方式。你可以通过从文件中读取 JSON,通过解析 JSON 字符串,并且可以用和将 Python 对象转化为 JSON 格式的数据。通过这些示例代码,你可以处理简单到复杂的 JSON 结构,并且可以通过异常捕获提高程序的健壮性。

孔乙己的博客 1366
上一篇: 基于jenkins的自动化单元测试实践
carroll0911
博客等级 码龄17年 27粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值