【Python】字典内容写入json文件

2023-11-12


Python中有序字典和无序字典,一键多值字典。

Python将字典内容写入json文件。


1、无序字典

目前了解三种,在Python中直接默认的是无序字典,这种不会按照你插入的顺序排序,即使你对字典排序后,返回的也是一个list变量,而不是字典,倘若你将这个list字典后,又会变回无序字典。

例子如下:

import operator

x = {"label": "haha", "data": 234, "score": 0.3}
sorted_x = sorted(x.items(), key=operator.itemgetter(0))
print x
print type(x)
print sorted_x
print type(sorted_x)
print dict(sorted_x)

这里写图片描述

2、有序字典

如果我们想保持字典按照我们插入的顺序有序怎么办?可以用OrderedDict来初始化字典。

例子如下:

from collections import OrderedDict

x = OrderedDict()

x["label"] = "haha"
x["data"] = 234
x["score"] = 0.3

print x
print type(x)

这里写图片描述

3、一键多值字典

如果我们想用一键多值字典怎么办,可以使用defaultdict,例子如下:

from collections import defaultdict


video = defaultdict(list)
video["label"].append("haha")
video["data"].append(234)
video["score"].append(0.3)
video["label"].append("xixi")
video["data"].append(123)
video["score"].append(0.7)

print video
print type(video)

这里写图片描述

4、写入json

字典内容写入json时,需要用json.dumps将字典转换为字符串,然后再写入。

json也支持格式,通过参数indent可以设置缩进,如果不设置的话,则保存下来会是一行。

例子:

4.1 无缩进:
from collections import defaultdict, OrderedDict
import json

video = defaultdict(list)
video["label"].append("haha")
video["data"].append(234)
video["score"].append(0.3)
video["label"].append("xixi")
video["data"].append(123)
video["score"].append(0.7)

test_dict = {
    'version': "1.0",
    'results': video,
    'explain': {
        'used': True,
        'details': "this is for josn test",
  }
}

json_str = json.dumps(test_dict)
with open('test_data.json', 'w') as json_file:
    json_file.write(json_str)

这里写图片描述

4.2 有缩进:
from collections import defaultdict, OrderedDict
import json

video = defaultdict(list)
video["label"].append("haha")
video["data"].append(234)
video["score"].append(0.3)
video["label"].append("xixi")
video["data"].append(123)
video["score"].append(0.7)

test_dict = {
    'version': "1.0",
    'results': video,
    'explain': {
        'used': True,
        'details': "this is for josn test",
  }
}

json_str = json.dumps(test_dict, indent=4)
with open('test_data.json', 'w') as json_file:
    json_file.write(json_str)

这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Python】字典内容写入json文件 的相关文章

随机推荐

  • Dev的splitContainerControl

    1 鼠标移动到这里 鼠标变成左右双箭头此时可以选中splitContainerControl控件 也可以按下鼠标左键左右拖动可以设置分割左右panel的比例 2 SplitterPosition 设置分割的位置 如果想让两个panel左右分
  • 华为云服务器配置教程

    华为云服务器配置教程 云服务器 Xshell 宝塔 自己纯属小白一个 在这里记录一下自己的配置过程 希望像我这样的小白少走一些弯路 主要是最近想弄个服务器玩玩 正好牛客网出了个活动 购买服务器返现 一年的华为云服务器只要9块钱 于是就 白嫖
  • UNIAPP----uniapp里面页面跳转如何到tabbar页面

    在uniapp里面 页面跳转和微信小程序很相似 普通跳转到tabbar页面不报错 跳转到普通页面 定义点击事件 定义跳转地址 跳转tabbar页面 只需将uni navigateTo 更改为uni switchTab 即可
  • Expectation Algebra 期望代数

    Expectation Algebra https www kalmanfilter net background2 html I am going to extensively use the expectation algebra ru
  • LightOJ 1045 Digits of Factorial

    Problem acm hust edu cn vjudge problem visitOriginUrl action id 26765 分析 在base进制下 pow base x 表示最小的 x 1 位数 pow base x 1 表
  • ionic: ionic capacitor run android报错Android Gradle plugin requires Java 11 to run

    报错 capacitor Running Gradle build failed capacitor error capacitor FAILURE Build failed with an exception capacitor capa
  • su -切换用户时,出现-bash: et: command not found的错误,但切换成功

    在Linux下 安装Oracle时 出现如下错误 使用su oracle 切换用户时 会出现 bash et command not found的错误 但切换成功 使用su oracle 直接切换时 不会出现错误 解决办法 重新对系统环境变
  • python包介绍:GeoPandas(初识)

    1 GeoPandas介绍 GeoPandas是一个开源项目 可以更轻松地使用python处理地理空间数据 GeoPandas扩展了Pandas中使用的数据类型DataFrame 允许对几何类型进行空间操作 GeoPandas的目标是使在p
  • rdkafka应用场景和具体接口调用

    Rdkafka是一种高性能 开源 分布式的消息队列 它主要应用于大数据领域 日志收集 消息推送等场景 本文将介绍rdkafka的主要用途以及相关的接口调用方法 一 Rdkafka的应用场景 大数据领域 Rdkafka支持海量数据的高并发处理
  • QT对接百度云实现人脸注册和识别

    文章目录 目录 一 UI界面设计 1 获取Access Token 二 http协议头构造 三 对接百度云人脸注册和识别 四 json数据处理 五 数据 gt UI界面 六 效果 编辑 总结 一 UI界面设计 左上lineedit是处理后的
  • 刷脸支付以人脸为密码的支付方式蔚然成风

    在移动支付高速发展的现在 人们的每一次支付行为都与移动支付息息相关 尤其在中国 移动支付的使用率已经远远超出现金支付 人们对现金不再产生依赖 刷脸支付诞生后 人们对手机也不再产生依赖 因为出行仅靠刷脸即可 我国的移动支付水平在全国都处于领先
  • Springboot 多模块集成mybatis提示:Invalid bound statement (not found)

    1 第一步 检查提示错误信息接口namespace 文件是否对应 MyBatis 文件Mapper 接口定义与Mapper xml 文件定义一致 2 整体项目结构截图如下 从项目结构来看 包含两个子模块包含MyBatis 的mapper 文
  • Element之el-switch上显示文字

    如果我们想要在Element组件库中的switch开关组件上显示文字该怎么做 1 Html部分
  • pclint html报告,PC-lint 9 + 中文手册

    实例简介 PCLINT是一种代码检查工具 还包括中文文档 实例截图 核心代码 Pc Lint9 pclint autorun inf DOS ins choose16 exe choose exe install exe lint exe
  • ACE_Message_Block例子

    include ace OS h include ace Message Block h include ace FILE IO h include
  • 【Absible学习】Ansible常用模块---包管理模块

    yum repository模块 yum repository模块可以管理远程主机上的yum仓库 模块参数 参数 说明 name 必须参数 用于指定要操作的唯一的仓库ID 也就是 repo 配置文件中每个仓库对应的 中括号 内的仓库ID b
  • 深度学习--手写数字识别<一>

    手写字符识别数据集THE MNIST DATABASE of handwritten digits http yann lecun com exdb mnist 其中训练集60000例 测试集10000例 加载数据 1 读取数据 usr b
  • 博客营销分析:博客营销的优势+方法技巧+成功案例介绍

    博客营销分析 博客营销的优势 方法技巧 成功案例介绍 一 博客营销是什么 博客营销的定义 首先 先为大家介绍博客的定义 博客是一个可以发布文字 链接 图片 视频的网站 是实现信息分享与交流的平台 而博客营销是博主通过博客内容向网站用户传递信
  • [整理]MySQL8-安装、启动、卸载、初始密码、忘记密码(CentOS,Ubuntu,Widows)

    系统和MySQL更新换代都很快 我用到时会顺手整理在这里 内容没什么技术含量 也不保障内容的全和新 每次遇到问题网上搜索一下很容易找到解决方法的 我工作电脑用Widows Ubuntu WSL 服务器用CentOS 所以三个系统都安装过 C
  • 【Python】字典内容写入json文件

    Python中有序字典和无序字典 一键多值字典 Python将字典内容写入json文件 1 无序字典 目前了解三种 在Python中直接默认的是无序字典 这种不会按照你插入的顺序排序 即使你对字典排序后 返回的也是一个list变量 而不是字