Python json 操作

最近需要用到取流操作,在编辑requests.post()请求时需要用到json,记一下基本操作:

import json


'''
涉及的数据类型:dict,str
涉及的方法:dump、dumps,load、loads
其他:涉及文件的读写操作,入with open(filename,"r") as f
'''

dict 就是python字典,json数据对象看着很像字典,但是json操作的对象是字符串,这是刚接触时容易误犯的错误。字典是字典,在字典外面加单引号就是字符串。json.dump/json.dumps 方法就是干这个的,把字典编码为字符串。区别在于:

dic = {"name":"wangdachui"} # 这是一个字典

@1
with open("config.json","w") as f:
    json.dump(dic,f) # dump将字典转为字符串存到config.json 文件中

@2
str_dic = json.dumps(dic) # dumps,可以理解为dump string,将字典转化为字符串
# 不同的是这里str_dic不用存到文件对象中,只是变成了一个字符串变量。
type(str_dic) ==>> 'str'

#3
with open("config.json","r") as f:
    dic = json.load(f) # load方法将文件对象解码为字典对象
                       # 这里也可以替换为dic = json.loads(f.read())
#4
dic = json.loads(str(dic)) # 这里使用loads加载字典时需要先将dic转化为字符串,
                           # loads 可以理解为load string

# 要读取一个json文件中的内容并重写该json文件:
with open("config.json","r") as f:
    dic = json.load(f) # 读出config.json中的内容为字典

with open("config.json","w") as f:
    dic.setdefault("age",88)
    dic.setdefault("sex","femal")
    json.dump(dic,f,indent=4) # 将dic存到新的文件中;为了易读可以设置缩进为4

个人写的一些代码:

import os
import json
# import jpype 
import requests


# 保存字典为json:json.dump(dict,file)
a = {"name":"wangdachui"}
with open("camera.json","w") as f:
    json.dump(a,f)

res = {"cameraId":"kdhgshaii9232kdhs",
       "data":{
           "time":"20220101",
           "url":"rtsp://ikahlshahkks/sdkja/iwehgasd"
       },
       "event_type":"alarmSmoking"}
# 保存字典为json,并有缩进为4
with open("config.json","w") as f:
    json.dump(res,f,indent=4)
#读取json给变量赋值 load方法
with open("config.json","r") as f:
    cfg = json.load(f)
    camera_id = cfg['cameraId']
    rtsp = cfg['data']['url']

#读取并重写json文件
with open("camera.json","r") as f:
    camera_json = json.load(f) # 虽然文件f关闭了但是camera_json作为一个对象继续存在.
    
with open("camera.json","w") as f: # 重新写文件camera.json,覆盖掉之前的
    print("camera_json",camera_json)
    camera_json.setdefault("camera_id",camera_id)
    print("camera_id: ", camera_id)
    camera_json.setdefault("rtsp_url",rtsp)
    print("rtsp_url: ", rtsp)
    
    print("type of camera_json: ", type(camera_json))
    json.dump(camera_json,f)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值