在python中利用dict转json按输入顺序输出内容方式


Posted in Python onFebruary 27, 2020

一般常规的我们保存数据为dict类型时,系统会自动帮我们排序;但有时我们想按照输入顺序的key:value保存到dict中,而不想要改变顺序,则我们可以通过使用collecions,进行排序。

collections是一个python的内建模块。

示例如下:

# -*- coding:utf-8 -*-
#dic = {}
dic = dict()
dic['b'] = 1
dic['a'] = 2
dic['b0'] = 3
dic['a1'] = 4
print("dic is:",dic.items())
 
import json
jsons = json.dumps(dic)
print("jsons:",jsons)
 
 
结果:
('dic is:', [('a', 2), ('a1', 4), ('b', 1), ('b0', 3)])
('jsons:', '{"a": 2, "a1": 4, "b": 1, "b0": 3}')
 
 
修改后:
import collections
dic = collections.OrderedDict()
#dic = {}
dic['b'] = 1
dic['a'] = 2
dic['b0'] = 3
dic['a1'] = 4
print("dic is:",dic.items())
 
import json
jsons = json.dumps(dic)
print("jsons:",jsons)
 
结果:
('dic is:', [('b', 1), ('a', 2), ('b0', 3), ('a1', 4)])
('jsons:', '{"b": 1, "a": 2, "b0": 3, "a1": 4}')

补充拓展:Python字典转Json并使用多种格式实现

前言:

利用Python数据转换的套路可以遵循:变量定义的位置,字典操作,列表操作,这个三部分的内容可以处理大部分的数据相关需求。

1.下面我们先看这个脚本:

#从字典转换为Json的方法

from distutils.log import warn as printf
from json import dumps
from pprint import pprint

BOOKs = {
  '0132269937': {
    'title': 'Core Python Programming',
    'edition': 2,
    'year': 2007,
  },
  '0132356139': {
    'title': 'Python Web Development with Django',
    'authors': ['Jeff Forcier', 'Paul Bissex', 'Wesley Chun'],
    'year': 2009,
  },
  '0137143419': {
    'title': 'Python Fundamentals',
    'year': 2009,
  },
}

printf('*** RAW DICT ***')
printf(BOOKs)

printf('\n*** PRETTY_PRINTED DICT ***')
pprint(BOOKs)

printf('\n*** RAW JSON ***')
printf(dumps(BOOKs))

printf('\n*** PRETTY_PRINTED JSON ***')
printf(dumps(BOOKs, indent=4))

输出结果:

"E:\Anaconda3 4.2.0\python.exe" E:/Pycharm/Python-code/dict2json.py
*** RAW DICT ***
{'0132269937': {'edition': 2, 'title': 'Core Python Programming', 'year': 2007},
 '0132356139': {'authors': ['Jeff Forcier', 'Paul Bissex', 'Wesley Chun'],
{'0137143419': {'year': 2009, 'title': 'Python Fundamentals'}, '0132356139': {'year': 2009, 'authors': ['Jeff Forcier', 'Paul Bissex', 'Wesley Chun'], 'title': 'Python Web Development with Django'}, '0132269937': {'year': 2007, 'edition': 2, 'title': 'Core Python Programming'}}
        'title': 'Python Web Development with Django',

        'year': 2009},
*** PRETTY_PRINTED DICT ***
 '0137143419': {'title': 'Python Fundamentals', 'year': 2009}}

*** RAW JSON ***
{"0137143419": {"year": 2009, "title": "Python Fundamentals"}, "0132356139": {"year": 2009, "authors": ["Jeff Forcier", "Paul Bissex", "Wesley Chun"], "title": "Python Web Development with Django"}, "0132269937": {"year": 2007, "edition": 2, "title": "Core Python Programming"}}

*** PRETTY_PRINTED JSON ***
{
  "0137143419": {
    "year": 2009,
    "title": "Python Fundamentals"
  },
  "0132356139": {
    "year": 2009,
    "authors": [
      "Jeff Forcier",
      "Paul Bissex",
      "Wesley Chun"
    ],
    "title": "Python Web Development with Django"
  },
  "0132269937": {
    "year": 2007,
    "edition": 2,
    "title": "Core Python Programming"
  }
}

Process finished with exit code 0

首先导入所需要的三个函数:1)导入distutils.log.warn()用来应对python2中print语句和python3中print()语句引起的差异;2)json.dumps(),用来返回一个表示python对象的字符串;pprint.pprint(),用来美观地输出python的对象。

BOOKs数据结构是一个python字典,这里没有用列表这样扁平的数据结构,是因为字典可以构建结构化层次的属性(BOOKs表示通过ISBN标识的书籍还具备额外的信息:书名、作者、出版年份)。值得注意的是,在等价的json表示方法中会移除所有额外的逗号。

Python的Json模块序列化与反序列化的过程分别是 encoding和 decoding。encoding-把一个Python对象编码转换成Json字符串;decoding-把Json格式字符串解码转换成Python对象。要使用json模块必须先import json

Json的导入导出

用write/dump是将Json对象输入到一个python_object中,如果python_object是文件,则dump到文件中;如果是对象,则dump到内存中。这是序列化

2.纵向数据转换为横向数据

1.情况:由于目前spark直接生成的json是每行一个对象,类似以下的json数据格式

[
 {
  "cardno": 100000026235,
  "trdate": "2015-12-25",
  "otime": "16:13:33",
  "dtime": "16:21:10",
  "osite": 16,
  "dsite": 15,
  "tfc": 1
 }]

2.需求:转换成Json column arrays 数组格式 [{},{}]如下

{'cardno': [100006734923], 'trdate': ['2015-12-25'], 'dtime': ['17:56:45'], 'dsite': [40], 'osite': [41], 'otime': ['17:50:11'], 'tfc': [1]}

3.Python代码实现:

import sys
import json

with open(r'D:/data.json', 'r') as f:
  data = json.load(f)
  # test = {
  #   "cardno": 100006734923,
  #   "trdate": "2015-12-25",
  #   "otime": "17:50:11",
  #   "dtime": "17:56:45",
  #   "osite": 41,
  #   "dsite": 40,
  #   "tfc": 1
 #   }
  result = {"cardno": [], "trdate":[], "otime":[],"dtime":[],"osite":[],"dsite":[],"tfc":[]}
for test in data:
  for a in test.keys():
    result[a].append(test[a]);
print(result)

切换本地文件路径转换。

以上这篇在python中利用dict转json按输入顺序输出内容方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用matplotlib绘制动画的方法
May 20 Python
浅谈Python中函数的参数传递
Jun 21 Python
django站点管理详解
Dec 12 Python
python机器学习理论与实战(五)支持向量机
Jan 19 Python
Python爬虫实现简单的爬取有道翻译功能示例
Jul 13 Python
python 对字典按照value进行排序的方法
May 09 Python
Python PyCharm如何进行断点调试
Jul 05 Python
Python matplotlib生成图片背景透明的示例代码
Aug 30 Python
Python数据可视化:饼状图的实例讲解
Dec 07 Python
python如何把字符串类型list转换成list
Feb 18 Python
python 解决print数组/矩阵无法完整输出的问题
Feb 19 Python
OpenCV灰度化之后图片为绿色的解决
Dec 01 Python
pytorch之Resize()函数具体使用详解
Feb 27 #Python
浅谈Python中的异常和JSON读写数据的实现
Feb 27 #Python
简单了解Python write writelines区别
Feb 27 #Python
python json load json 数据后出现乱序的解决方案
Feb 27 #Python
Python3标准库之functools管理函数的工具详解
Feb 27 #Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
Feb 27 #Python
python通过对字典的排序,对json字段进行排序的实例
Feb 27 #Python
You might like
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
2013/06/19 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
2013/10/20 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
angular5 子组件监听父组件传入值的变化方法
2018/09/30 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
keras实现多种分类网络的方式
2020/06/11 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
基于HTML5的WebSocket的实例代码
2018/08/15 HTML / CSS
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
初一生物教学反思
2014/01/18 职场文书
新护士岗前培训制度
2014/02/02 职场文书
小学生操行评语
2014/04/22 职场文书
工商管理专业自荐信
2014/06/03 职场文书
主要负责人任命书
2014/06/06 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
离婚民事起诉状
2015/08/03 职场文书
2019年聘任书的写作格式及范文!
2019/07/03 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python