首页 > 编程语言 >Python读写JSON文件的两种方式

Python读写JSON文件的两种方式

时间:2023-07-26 16:45:22浏览次数:45  
标签:Python 读写 json JSON dict path print new data

1. 把文件读取为字符串,然后转换为json数据(dict格式),loads and dumps

关键点:写入json文件的时候,要指定ensure_ascii参数为False,否则中文编码虽然为utf_8,但仍然无法显示中文,而是\uxxx形式的编码。new_json_string = json.dumps(json_data, ensure_ascii=False)

import json

def read_json_str2dic(path):
    json_str = None  # json string
    with open(path, 'r', encoding='utf_8') as fp:
        json_str = fp.read()
    json_data = json.loads(json_str)  # get json from json string
    print(type(json_data))  # <class 'dict'>
    for item in json_data:
        print(item)  # print keys of json_data
        print(json_data[item])  # print values of json_data

    # append new data and write into a file.
    new_data = {
        "tags": "工业检测", 
        "title":"【总结】全面解析机器视觉在工业检测中应用瓶颈",
        "linkurl":"https://mp.weixin.qq.com/s/SeqVZUqVC_y7pUO2xWcqqQ",
        "comment":"给出了很多思考,值得反复看。", 
    }
    json_data["003"] = new_data
    # new_json_string = json.dumps(json_data)  # 会把中文转为\uxxx形式
    new_json_string = json.dumps(json_data, ensure_ascii=False)  # 正常显示中文
    with open("./new_blogs.json", 'w', encoding='utf_8') as nf:
        nf.write(new_json_string)

if __name__ == '__main__':
    json_path = "./blogs.json"
    read_json_str2dic(json_path)

2.字典类型和JSON数据互相转换。load and dump

def read_json_dict2json(path):
    json_dict = None
    with open(path, 'r', encoding='utf_8') as fp:
        json_dict = json.load(fp)
    print(type(json_dict))
    for item in json_dict:
        print(item)
        print(json_dict[item])
    # append new data and write into a file.
    new_data = {
        "tags": "工业检测", 
        "title":"【方案】基于机器视觉的锂电池表面缺陷检测方案",
        "linkurl":"https://mp.weixin.qq.com/s/1ZCjE1qoinqr0O1El8gOMA",
        "comment":"给出了很多思考,值得反复看。", 
    }
    json_dict["004"] = new_data
    with open(path, 'w', encoding='utf_8') as fp:
        json.dump(json_dict, fp, ensure_ascii=False)

 

标签:Python,读写,json,JSON,dict,path,print,new,data
From: https://www.cnblogs.com/zhaoke271828/p/17582896.html

相关文章

  • Linux系统多个Python版本任意切换
    比如系统安装了两个python3版本:python3.8和python3.10update-alternatives用法:update-alternatives:--install需要<链接><名称><路径><优先级>分别设置这两个版本的python3:$ls/usr/bin/python3python3python3.10-configpython3-configpython3-pasteurize ......
  • python批量计算多站点多年标准化降水指数SPI
    前面提过如何计算单站点多年的标准化降水指数SPI,但是在现实中不仅只计算一个站点的标准化降水指数,有时要计算多个站点的。原始数据是11个站点1961年至2022年每个月的降水值: 编程思路是:1、先需要进行站点分类:   此处的难点在于需要写个for循环,根据站点名称遍历数据 ......
  • python 开发环境管理 pyenv, poetry
    下载python任何一个版本,比如python3.8安装pyenv-winlink:https://github.com/pyenv-win/pyenv-win/blob/master/docs/installation.md#add-system-settings步骤: pipinstallpyenv-win--target%USERPROFILE%\\.pyenvorpipinstallpyenv-win--target%USE......
  • Python采集主播照片,实现人脸识别, 进行颜值评分,制作颜值排行榜
    昨晚一回家,表弟就神神秘秘的跟我说,发现一个高颜值网站,非要拉着我研究一下她们的颜值高低。我心想,这还得要我一个个慢慢看,太麻烦了~于是反手用Python给他写了一个人脸识别代码,把她们的照片全部爬下来,自动检测颜值打分排名。这不比手动快多了?准备工作开发环境Py......
  • 安装easy_install 和ipython
    从链接http://pypi.python.org/pypi/setuptools#downloads处获得相应的版本运行shsetuptools-0.6c9-py2.4.egg(跟用户权限,若没有可以指定--prefix=~)安装完毕对python2.6可运行下面代码:#!/bin/bash#wgethttp://pypi.python.org/packages/2.6/s/......
  • python 读取文件夹
    importos#返回一个列表['01.xlsx','EE_reg.txt','EEData.txt','ERENR.txt','ER-25.txt']file_names=os.listdir('D:\\yuyu\\test_yuyu\\accessibility_1\\APP_Employer_EE_Enrolment')file=op......
  • GaussDB(for Redis)多租户:读写权限控制和数据库隔离的完美融合
    本文分享自华为云社区《GaussDB(forRedis)企业级特性揭秘之多租户管理》,作者:GaussDB数据库。华为云GaussDB(forRedis)持续完善企业级增强特性,是名副其实的"RedisPlus",其中很经典的企业级特性是多租户能力,支持添加只读账号、读写账号,并且可约束每个账号可访问的数据库(DB)范围......
  • python通过SSE与html主动通讯
    博客:使用Python通过SSE与HTML实现主动通讯在现代Web应用中,实时性和交互性成为了越来越重要的需求。服务器向客户端主动推送数据,而不是等待客户端发送请求,就是一种实现实时通讯的方式。Server-SentEvents(SSE)正是一种用于实现这种服务器主动推送的技术。本文将介绍如何使......
  • Python做成计划任务
    将Python脚本转换为可执行文件(.exe文件)&把一个Python脚本注册为windows服务-陈致远大侠-博客园(cnblogs.com)书再接上回,为这样一个小项目花这么大力气,弄这么大阵仗不是我的处事风格。所以只好转战计划任务了。计划任务也是不支持直接运行python,示例如下:......
  • [爬虫]2.3.1 使用Python操作文件系统
    Python提供了许多内置库来处理文件系统,如os、shutil和pathlib等,这些库可以帮助你创建、删除、读取、写入文件和目录。读取文件在Python中,你可以使用内置的open函数来打开一个文件。open函数返回一个文件对象,你可以对这个对象进行各种操作。以下是一个读取文件的例子:withopen(......