Python json.loads 改变对象的顺序

2024-02-16

我有一个包含 JSON 对象的文件。它是通过以下方式加载的:

with open('data.json', 'r') as input_file:
  input_data = input_file.read()

此时 input_data 仅包含一个字符串,现在我继续将其解析为 JSON:

data_content = json.loads(input_data.decode('utf-8'))

data_content 具有我需要的字符串的 JSON 表示形式,但由于某种原因,在 json.loads 之后我不清楚它正在改变键的原始顺序,例如,如果我的文件包含类似以下内容的内容:

{ "z_id": 312312,
  "fname": "test",
  "program": "none",
  "org": null
}

在 json.loads 之后,顺序被更改为:

{ "fname": "test",
  "program": None,
  "z_id": 312312,
  "org": "none"
}

为什么会发生这种情况?有没有办法保留订单?我正在使用Python 2.7。


python 中的字典(对象)没有保证顺序。所以当解析成dict,订单丢失。

如果订单由于某种原因很重要,您可以json.loads use an OrderedDict相反,这就像dict,但键的顺序会被保存。

from collections import OrderedDict

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

Python json.loads 改变对象的顺序 的相关文章

  • Pycharm Python 控制台不打印输出

    我有一个从 Pycharm python 控制台调用的函数 但没有显示输出 In 2 def problem1 6 for i in range 1 101 2 print i end In 3 problem1 6 In 4 另一方面 像
  • 如何限制 sympy FiniteSet 包含符号

    我对 sympy 还很陌生 我尝试使用 linsolve 求解线性方程组 这产生了一个可以用以下两行重现的解决方案 d symbols d solution sets FiniteSet d 1 d 4 d 5 d 我的解决方案遵循限制 即
  • 使用 JSON 参数的 Postgres 批量 INSERT 函数

    这是一个plpgsqlpostgres 的函数9 6 它试图INSERT一行 如果插入没有失败 由于违反键约束 那么它会运行更多命令 CREATE FUNCTION foo int text text RETURNS void AS BEG
  • 如何打印没有类型的defaultdict变量?

    在下面的代码中 from collections import defaultdict confusion proba dict defaultdict float for i in xrange 10 confusion proba di
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • PHP 数组通过 JSON 转为 jquery 数组

    我有点困惑为什么以下不起作用 get php
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • Geopandas 设置几何图形:MultiPolygon“等于 len 键和值”的 ValueError

    我有 2 个带有几何列的地理数据框 我将一些几何图形从 1 个复制到另一个 这对于多边形效果很好 但对于任何 有效 多多边形都会返回 ValueError 请指教如何解决这个问题 我不知道是否 如何 为什么应该更改 MultiPolygon
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in

随机推荐

  • 访问第三方库中的 web.config 文件

    我正在编写一个 IHttpFilter 它需要位于一个单独的项目 这些都是 C 项目 中 以便在一组 ASP NET MVC 应用程序中使用 在 IHttpFilter 中 我必须确定 web config 文件中指定的一些内容 有没有办法
  • jQuery 追加元素(如果不存在),否则替换

    这是一小段代码 var el something find test if el length something append div class test somecontent div else el replaceWith div
  • 从 C 调用 PHP

    我正在尝试编写一个使用 PHP 作为脚本语言的应用程序 该应用程序是一个 CGI 处理程序 我希望能够从中调用 PHP 页面 我正在寻找可以让我在 C 程序中初始化 PHP 的代码 然后向其传递包含 php 代码的缓冲区或文件名 以供其解析
  • 数据库选项:为什么默认情况下“SET ANSI_NULLS OFF”对于新数据库是关闭的?

    使用 SSMS 2014 当我使用 SSMS 创建新数据库时 新数据库的默认设置有一些奇怪的地方 ALTER DATABASE del SET ANSI NULL DEFAULT OFF GO ALTER DATABASE del SET
  • 汇编器 64b 除法

    我需要一些简单的方法来在 x86 的汇编器中除以 64b 无符号整数 我的号码保存在两个 32b 寄存器 EDX EAX 中 我需要将结果放回 EDX EAX 因数为 32b 整数 请给一些代码 如果我正确解释你的问题 特别是这部分Fact
  • 发送 AVAudioRecorder 到服务器 iOS

    在过去的几天里 我试图将本地保存的声音记录上传到服务器 该服务器使用 php 文件处理它并将其保存到服务器 问题是我找不到办法做到这一点 录制声音 AVAudioRecorder 时 它保存在 NSTemporaryDirectory 中
  • 如何生成一个字符重复n次的字符串?

    我可以使用下面的代码来生成一个字符串 awk e BEGIN for i 1 i lt 10 i s s x print s xxxxxxxxxx 但它的复杂性与字符串长度是超线性的 time awk e BEGIN for i 1 i l
  • 标记未在子视图 IOS SWIFT 的谷歌地图中定位

    你好 我试图将地图放入子视图中 但是当我将谷歌地图放入子视图中时 它无法工作 标记和 GPS 坐标也无法工作 With Sub View Without Sub View SWIFT代码 import UIKit import Google
  • CMake 中的绝对路径与相对路径

    我一直在尝试构建一个简单的 C 库 在使用相对路径构建的过程中 CMake 无法正确配置我的链接库所在的位置 使用绝对路径配置成功 这是让我放弃使用 CMake 的一些原因之一 设置路径的推荐方法是什么 是绝对路径还是相对路径 为什么 gi
  • 如何在 Delphi 中递归创建文件夹?

    在创建可以通过给定路径递归创建文件夹的函数时需要一些帮助 C TestFolder Another AndAnother Delphi 函数 MkDir 返回 IOerror 3 MkDir C TestFolder Another And
  • 将证书从驱动程序导入 TrustedPublisher 以进行静默驱动程序安装

    我想安装 Balloon 驱动程序以在 KVM 中运行 Windows 无需用户任何交互 静默安装 我使用 powershell 将驱动程序中的证书提取到某个临时文件 然后使用 certutil exe 将其导入到 TrustedPubli
  • 在元素之间移动鼠标太快时的 jQuery 悬停问题

    我在页面上多次重复以下 html div class outer outer div class inner inner div div 并有这个 jQuery inner hide outer hover function e this
  • clang-tidy 配置中没有等效的“-line-filter”?

    我想配置我的 line filter 中的论点 clang tidy文件而不是生成命令的 cmake 源文件中 添加一个LineFilter文件的密钥只会给我一个 未知密钥 错误 这真的不支持通过配置文件吗 还有其他选择吗 不幸的是 这不受
  • 如何将 CSS 引用添加到 .NET SyndicatedFeed?

    我创建了一个包含许多 Syndicates 的简单 SyndicatedFeed 每个 SyndicateItem 都有 HtmlContent HtmlContent 是一个表 这显示正常 但现在我需要在桌子上添加最少的样式 填充 我相信
  • 将 Oracle 数据库从一台 PC 转移到另一台 PC 的最简单方法是什么?

    我想把我的oracle数据库转移到另一台电脑上 最简单的方法是什么 有没有 GUI 工具可以做到这一点 APC 的答案是逻辑传输的方法 如果您询问是因为您只想一次性传输到另一台电脑 那么 安装相同版本的Oracle 第二台电脑 创建相同的目
  • 当更改视图的模型时,是替换模型更好还是创建新视图更好?

    我的 Backbone 应用程序中有一个电子邮件视图 它目前在中实例化view我的控制器的动作 它有点像这样 routes email id email email function id var email new Email id id
  • Android 嵌入式网络服务器

    我想在我的 Android 应用程序中嵌入一个网络服务器 连接到它的设备将具有两种功能 一个是发送一个 xml 文件 我可以解析该文件并执行一些操作 另一个是能够从我的 SD 卡下载文件 我找到了 nanoHTTPD 和 AndroidHT
  • Linux 上的 mysql2 gem 安装

    我正在尝试在 Linux 上安装 gem 但它给了我一个错误 An error occured while installing mysql2 0 3 11 and Bundler cannot continue Make sure tha
  • Rails 中是否可以有复合外键?

    假设以下数据模式 Usage client id resource type amount Billing client id usage resource usage type rate 在此示例中 假设我有多个资源 每个资源都可以通过多
  • Python json.loads 改变对象的顺序

    我有一个包含 JSON 对象的文件 它是通过以下方式加载的 with open data json r as input file input data input file read 此时 input data 仅包含一个字符串 现在我继