欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在python中利用dict轉(zhuǎn)json按輸入順序輸出內(nèi)容方式

 更新時間:2020年02月27日 10:16:05   作者:zhw864680355  
今天小編就為大家分享一篇在python中利用dict轉(zhuǎn)json按輸入順序輸出內(nèi)容方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

一般常規(guī)的我們保存數(shù)據(jù)為dict類型時,系統(tǒng)會自動幫我們排序;但有時我們想按照輸入順序的key:value保存到dict中,而不想要改變順序,則我們可以通過使用collecions,進行排序。

collections是一個python的內(nèi)建模塊。

示例如下:

# -*- 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)
 
 
結(jié)果:
('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)
 
結(jié)果:
('dic is:', [('b', 1), ('a', 2), ('b0', 3), ('a1', 4)])
('jsons:', '{"b": 1, "a": 2, "b0": 3, "a1": 4}')
 

補充拓展:Python字典轉(zhuǎn)Json并使用多種格式實現(xiàn)

前言:

利用Python數(shù)據(jù)轉(zhuǎn)換的套路可以遵循:變量定義的位置,字典操作,列表操作,這個三部分的內(nèi)容可以處理大部分的數(shù)據(jù)相關(guān)需求。

1.下面我們先看這個腳本:

#從字典轉(zhuǎn)換為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))

輸出結(jié)果:

"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

首先導(dǎo)入所需要的三個函數(shù):1)導(dǎo)入distutils.log.warn()用來應(yīng)對python2中print語句和python3中print()語句引起的差異;2)json.dumps(),用來返回一個表示python對象的字符串;pprint.pprint(),用來美觀地輸出python的對象。

BOOKs數(shù)據(jù)結(jié)構(gòu)是一個python字典,這里沒有用列表這樣扁平的數(shù)據(jù)結(jié)構(gòu),是因為字典可以構(gòu)建結(jié)構(gòu)化層次的屬性(BOOKs表示通過ISBN標識的書籍還具備額外的信息:書名、作者、出版年份)。值得注意的是,在等價的json表示方法中會移除所有額外的逗號。

Python的Json模塊序列化與反序列化的過程分別是 encoding和 decoding。encoding-把一個Python對象編碼轉(zhuǎn)換成Json字符串;decoding-把Json格式字符串解碼轉(zhuǎn)換成Python對象。要使用json模塊必須先import json

Json的導(dǎo)入導(dǎo)出

用write/dump是將Json對象輸入到一個python_object中,如果python_object是文件,則dump到文件中;如果是對象,則dump到內(nèi)存中。這是序列化

2.縱向數(shù)據(jù)轉(zhuǎn)換為橫向數(shù)據(jù)

1.情況:由于目前spark直接生成的json是每行一個對象,類似以下的json數(shù)據(jù)格式

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

2.需求:轉(zhuǎn)換成Json column arrays 數(shù)組格式 [{},{}]如下

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

3.Python代碼實現(xiàn):

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)

切換本地文件路徑轉(zhuǎn)換。

以上這篇在python中利用dict轉(zhuǎn)json按輸入順序輸出內(nèi)容方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python QTimer實現(xiàn)多線程及QSS應(yīng)用過程解析

    Python QTimer實現(xiàn)多線程及QSS應(yīng)用過程解析

    這篇文章主要介紹了Python QTimer實現(xiàn)多線程及QSS應(yīng)用過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Python統(tǒng)計單詞出現(xiàn)的次數(shù)

    Python統(tǒng)計單詞出現(xiàn)的次數(shù)

    最近經(jīng)理交給我一項任務(wù),統(tǒng)計一個文件中每個單詞出現(xiàn)的次數(shù),列出出現(xiàn)頻率最多的5個單詞。本文給大家?guī)砹藀ython 統(tǒng)計單詞次數(shù)的思路解析,需要的朋友參考下吧
    2018-04-04
  • Python 字符串定義

    Python 字符串定義

    字符串是程序中最常見的數(shù)據(jù)類型。在Python中,可以使用三種方式定義字符串。單引號、雙引號和三引號。
    2009-09-09
  • Python類繼承和多態(tài)原理解析

    Python類繼承和多態(tài)原理解析

    這篇文章主要介紹了python類繼承和多態(tài)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • python接口自動化之使用token傳入到header消息頭中

    python接口自動化之使用token傳入到header消息頭中

    這篇文章主要介紹了python接口自動化之使用token傳入到header消息頭中問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 用Python PIL實現(xiàn)幾個簡單的圖片特效

    用Python PIL實現(xiàn)幾個簡單的圖片特效

    這篇文章主要介紹了用Python PIL實現(xiàn)幾個簡單的圖片特效,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • python發(fā)qq消息轟炸虐狗好友思路詳解(完整代碼)

    python發(fā)qq消息轟炸虐狗好友思路詳解(完整代碼)

    因為我的某個好友在情人節(jié)的時候秀恩愛,所以我靈光一閃制作了qq消息轟炸并記錄了下來。本文給大家分享python發(fā)qq消息轟炸虐狗好友思路詳解,感興趣的朋友一起看看吧
    2020-02-02
  • python中dot函數(shù)運算過程總結(jié)

    python中dot函數(shù)運算過程總結(jié)

    dot函數(shù)為numpy庫下的一個函數(shù),主要用于矩陣的乘法運算,其中包括:向量內(nèi)積、多維矩陣乘法和矩陣與向量的乘法,下面這篇文章主要給大家介紹了關(guān)于python中dot函數(shù)運算過程的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • python GUI庫圖形界面開發(fā)之PyQt5滾動條控件QScrollBar詳細使用方法與實例

    python GUI庫圖形界面開發(fā)之PyQt5滾動條控件QScrollBar詳細使用方法與實例

    這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5滾動條控件QScrollBar詳細使用方法與實例,需要的朋友可以參考下
    2020-03-03
  • 解決安裝torch后,torch.cuda.is_available()結(jié)果為false的問題

    解決安裝torch后,torch.cuda.is_available()結(jié)果為false的問題

    這篇文章主要介紹了解決安裝torch后,torch.cuda.is_available()結(jié)果為false的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評論