我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python 读取与存储json

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python 读取与存储json

官方文档:http://python3-cookbook.readthedocs.io/zh_CN/latest/c06/p02_read-write_json_data.html

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

JSON在python中分别由list和dict组成。

这是用于序列化的两个模块:

  • json: 用于字符串和python数据类型间进行转换
  • pickle: 用于python特有的类型和python的数据类型间进行转换
  • Json模块提供了四个功能:dumps、dump、loads、load

json dumps把数据类型转换成字符串 dump把数据类型转换成字符串并存储在文件中 loads把字符串转换成数据类型 load把文件打开从字符串转换成数据类型

json是可以在不同语言之间交换数据的,而pickle只在python之间使用。json只能序列化最基本的数据类型,josn只能把常用的数据类型序列化(列表、字典、列表、字符串、数字、),比如日期格式、类对象!josn就不行了。而pickle可以序列化所有的数据类型,包括类,函数都可以序列化。

import json

# Writing JSON data
with open('data.json', 'w') as f:
    json.dump(data, f)

# Reading data back
with open('data.json', 'r') as f:
    data = json.load(f)

字典排序

问题
你想创建一个字典,并且在迭代或序列化这个字典的时候能够控制元素的顺序。

解决方案
为了能控制一个字典中元素的顺序,你可以使用 collections 模块中的 OrderedDict 类。 在迭代操作的时候它会保持元素被插入时的顺序,示例如下:

from collections import OrderedDict

d = OrderedDict()
d['foo'] = 1
d['bar'] = 2
d['spam'] = 3
d['grok'] = 4
# Outputs "foo 1", "bar 2", "spam 3", "grok 4"
for key in d:
    print(key, d[key])

OrderedDict 内部维护着一个根据键插入顺序排序的双向链表。每次当一个新的元素插入进来的时候, 它会被放到链表的尾部。对于一个已经存在的键的重复赋值不会改变键的顺序。

需要注意的是,一个 OrderedDict 的大小是一个普通字典的两倍,因为它内部维护着另外一个链表。 所以如果你要构建一个需要大量 OrderedDict 实例的数据结构的时候(比如读取 100,000 行 CSV 数据到一个 OrderedDict 列表中去), 那么你就得仔细权衡一下是否使用 OrderedDict 带来的好处要大过额外内存消耗的影响。


# from collections import ChainMap
# # dict(index=0,name='none',width=0,height=0,bbox=str([0,0,0,0]),gender='none',age=0,mask='none',glass='none',hat='none')
# jsonDefault=dict(bbox=str([0,0,0,0]),gender='male',age=0,mask='none',glass='none',hat='none')

# # name:文件名str,width:图片宽int,height:图片高int,bbox:str([0,1,2,3]),
# # gender:"male"|"female",glass:"sunglasses"|"glasses"|"none",age:年龄值int,hat:"Yes"|"No",
# jsonTemp=lambda args:'''{{"image_key":"{name}","video_name":"1","video_index":"{index}","width":{width},"height":{height},"face":[{{"id":1,"track_id":-1,"data":{bbox},"struct_type":"rect","attrs":{{"gender":"{gender}","has_glasses":"{glass}","specific_age":"{age}","has_mask":"none","Wear_a_hat":"{hat}","occlusion":"{asvisible}"}}}}]}}
# '''.format(**ChainMap(args,jsonDefault))

# # 为什么不使用json标准的空值:null

from collections import ChainMap
# dict(index=0,name='none',width=0,height=0,bbox=str([0,0,0,0]),gender='none',age=0,mask='none',glass='none',hat='none')
jsonDefault=dict(bbox=str([0,0,0,0]),gender='male',age=0,mask='none',glass='none',hat='none')

# name:文件名str,width:图片宽int,height:图片高int,bbox:str([0,1,2,3]),
# gender:"male"|"female",glass:"sunglasses"|"glasses"|"none",age:年龄值int,hat:"Yes"|"No",
jsonTemp=lambda args:'''{{"image_key":"{name}","video_name":"1","video_index":"{index}","width":{width},"height":{height},"face":[{{"id":1,"track_id":-1,"data":"none","struct_type":"rect","attrs":{{"gender":"{gender}","has_glasses":"none","specific_age":"{age}","has_mask":"none","Wear_a_hat":"none","occlusion":"none","ignore":"no"}}}}]}}
'''.format(**ChainMap(args,jsonDefault))

# 为什么不使用json标准的空值:null

# 基础 转换结果至指定json格式
def toJson(re_fileName):
    result = []
    for j, cur_line in enumerate(open(re_fileName).readlines()):
        (ind,sex,age,mask,glass,sunglass,hat,img) = (i.strip() for i in cur_line.strip().split('\t'))
        form=dict(index=int(float(ind)),name=img,width=72,height=72,gender='male' if int(float(sex))==1 else 'female',age=int(float(age)))
        result.append(jsonTemp(form))
    return result

re_fileName = 'filename.lst'
ipc_train_result=toJson(re_fileName)

with open('filename.json','w+') as f:
    for i in ipc_train_result:
        f.write(i)

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python 读取与存储json

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python 读取与存储json

官方文档:http://python3-cookbook.readthedocs.io/zh_CN/latest/c06/p02_read-write_json_data.htmlJSON(JavaScript Object Notatio
2023-01-31

python怎么读取和存储dict()与.json格式文件

本文小编为大家详细介绍“python怎么读取和存储dict()与.json格式文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“python怎么读取和存储dict()与.json格式文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入
2023-07-02

如何在Python读取与存储数据

这篇文章将为大家详细讲解有关如何在Python读取与存储数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、图示二、csv文件1.读取csv文件read_csv(file_path or
2023-06-15

python读取json数据存入MySQL

利用Python读取JSON数据并存储在MySQL数据库中,有助于跨平台兼容、易用性、社区支持和高性能。该过程包括读取JSON数据、与MySQL建立连接、准备SQL语句、使用游标插入数据和关闭连接。此方法提供了从JSON文件中提取数据并将其存储在结构化数据库中的有效方式,用于数据分析和处理任务。
python读取json数据存入MySQL
2024-04-11

python读取json数据存入MySQL

要将JSON数据存入MySQL中,您需要完成以下步骤:1. 导入所需的库:```pythonimport jsonimport mysql.connector```2. 连接到MySQL数据库:```pythonmydb = mysql.c
2023-09-01

Unity数据怎么存储与读取

Unity中数据存储和读取可以通过多种方式实现,以下是一些常用的方法:PlayerPrefs:Unity提供了PlayerPrefs类,可以用来存储简单的键值对数据。使用PlayerPrefs可以将数据存储在本地,例如存储玩家的游戏设置、进
Unity数据怎么存储与读取
2024-05-09

python怎么存储和读取数据

在Python中,可以使用各种方法来存储和读取数据,具体方式取决于数据的类型和使用环境。以下是一些常见的方法:使用变量:可以将数据保存在Python的变量中。例如,使用赋值语句将数据保存到变量中,然后可以通过变量来读取数据。data = "
2023-10-26

Spring存储与读取Bean对象方法

在Spring中,要想更简单的存储和读取对象的核心是使用注解,这篇文章主要给大家介绍了关于Spring如何通过注解存储和读取对象的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-01-13

python怎么存储和读取数据

存储和读取数据存储:文件存储:open()函数写入/读取数据数据库:SQLAlchemy连接数据库NoSQL数据库:灵活的数据模型键值存储:快速数据检索和缓存云存储:无限可扩展性、高可用性读取:文件存储:open()函数读取数据数据库:SQL查询NoSQL数据库:库执行查询键值存储:库连接并检索数据云存储:SDK连接并下载数据建议:小数据集:文件存储结构化数据:数据库非结构化数据:NoSQL数据库快速检索:键值存储大数据集:云存储最佳实践:匹配存储方法与数据类型使用库和框架处理错误确保安全监控性能
python怎么存储和读取数据
2024-04-12

python怎么逐行读取json

要逐行读取JSON文件,你需要使用`open()`函数打开文件,然后使用`json.load()`将JSON文件加载为Python对象。接下来,你可以使用`readline()`方法逐行读取文件内容,并使用`json.loads()`将每行
2023-08-16

python 存储json数据的操作

本篇我们将学习简单的json数据的存储 首先我们需要引入json模块:import json这里我们模拟一个常见常见,我们让用户输入用户名、密码,在密码输入完成后提示用户再次输入密码来确认自己的输入,如果两次密码一致,那么我们将用户名和密码
2022-06-02

python读取json文件转成exce

python处理excel有xlwt,openpyxl等,而xlwt只支持excel2003,也就是最多有256列,而openpyxl则支持excel2007以上,最多65536列。下面是两个的程序。xlwt为import jsonimpo
2023-01-31

python怎么读取json并解析

在Python中,可以使用json模块来读取和解析JSON数据。下面是一个简单的例子:pythonimport json# 读取JSON文件with open(data.json, r) as file: data = json.lo
2023-10-18

Python读取Json字典写入Exce

需求:需要将一json文件中大量的信息填入一固定格式的Excel表格环境:Windows7 +Python2.7 +Xlwt具体分析:原始文件为json列表,列表中有多个字典,生成Excel文件需要将列表中的字典的键值按键对应排列,也就是说
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录