1. 程式人生 > >\.ini配置檔案轉字典進行序列化

\.ini配置檔案轉字典進行序列化

需求

讀取mysql下的mysql.ini配置檔案,並講配置檔案轉化為字典並採用不同方法進行序列化

程式碼實現

# -*- coding: UTF-8 -*-
import configparser
import json
import pickle

def series(filename,sdump=pickle.dumps):
    """
    This function is to serieation a object
    sdump=pickle.dumps or sdump=json.dumps
    """
    cfg = configparser.ConfigParser()
    cfg.read(filename)
    ini_dict = {}

    for
k in cfg.keys(): dictkv = {} for key,val in cfg.items(str(k)): dictkv[key] = val ini_dict[k] = dictkv with open('test','wb') as f: #序列化儲存到磁碟 #f.write(str(series('mysql.ini',sdump=pickle.dumps))) pickle.dump(ini_dict,f) j = sdump(ini_dict) return
type(j),j print(series('mysql.ini',sdump=pickle.dumps)) #print(series('mysql.ini',sdump=json.dumps)) 執行結果: (<class 'bytes'>, b'\x80\x03}q\x00(X\x05\.......)

程式碼優化

優化思路

  • 在ini配置檔案中本身是巢狀字典,因此在生成字典時
for k,v in cfg.items():
        ini_dict[k] = dict(cfg.items(k))

程式碼實現

# -*- coding: UTF-8 -*-
import configparser import json import pickle import argparse def series(filename,sdump=pickle.dumps): """ This function is to serieation a object sdump=pickle.dumps or sdump=json.dumps """ cfg = configparser.ConfigParser() cfg.read(filename) ini_dict = {} #method1 #for k in cfg.keys(): # _d = {} # for key,val in cfg.items(str(k)): # _d[key] = val # ini_dict[k] = _d #method2 for k,v in cfg.items(): ini_dict[k] = dict(cfg.items(k)) with open('test','wb') as f: pickle.dump(ini_dict,f) j = sdump(ini_dict) return type(j),j print(series('mysql.ini',sdump=pickle.dumps)) #print(series('mysql.ini',sdump=json.dumps))

相關推薦

\.ini配置檔案字典進行序列

需求 讀取mysql下的mysql.ini配置檔案,並講配置檔案轉化為字典並採用不同方法進行序列化 程式碼實現 # -*- coding: UTF-8 -*- import configparser import json import pickl

python3 讀取 ini配置檔案

在程式碼中經常會通過ini檔案來配置一些常修改的配置。下面通過一個例項來看下如何寫入、讀取ini配置檔案. 需要的配置檔案是:   1 [path] 2 back_dir = /Users/abc/PycharmProjects/Pythoncoding/projects/ 3 target_

Tensorflow進行POS詞性標註NER實體識別 - 構建LSTM網絡進行序列標註

labels rop tac val when optimize 添加 implement verbose http://blog.csdn.net/rockingdingo/article/details/55653279 Github下載完整代碼 https://gi

】C# 序列與反序列

使用 ria tle 輸入 == 必須 mls zab ddr 轉自:https://www.cnblogs.com/lsy131479/p/8371858.html 對象持久化到文本文件,策略是:將對象的屬性值打散,拆解,分別存儲。 序列化: 保存對象的"全景圖" 序

使用 JSON JavaScriptSerializer 進行序列或反序列時出錯

ali rac service ons trac 字符 max sta spa 如題 報錯提示: 使用 JSON JavaScriptSerializer 進行序列化或反序列化時出錯。字符串的長度超過了為 maxJsonLength 屬性設置的值。","StackTra

ini配置檔案格式

 程式沒有任何配置檔案,那麼它對外是全封閉的,一旦程式需要修改一些引數必須要修改程式程式碼本身並重新編譯,為了讓程式出廠後還能根據需要進行必要的配置,所以要用配置檔案;配置檔案有很多種,如INI配置檔案,XML配置檔案,cfg配置檔案,還有就是可以使用系統登錄檔等。  &nb

C#對Json資料進行序列

json格式:我們常見的josn格式資料字串有一般都是一對大括號({}),或者兩對大括號的。下面就這2種常見的json格式的資料介紹一些對json格式的操作。 先了解下,我說的2種json格式: 第一種格式有一對大括號的: 第二種有兩對大括號的: { \"code\"

對訊息 的正文進行序列時出錯:“生成 XML 文件時出錯。”

c# 執行儲存過程時報錯:對訊息  的正文進行序列化時出錯:“生成 XML 文件時出錯。” 原因是在執行儲存過程時傳遞的裡面包含有表,但是我沒有給表命名。 解決方法是給宣告的表命名: DataTable I_AnnexTable = GetI_AnnexTable();

MVC JSON JavaScriptSerializer 進行序列或反序列時出錯

MVC control中返回json格式資料一般都是如下格式 [HttpPost] public ActionResult CaseAudit(string name) { var data ="dasda";

C++讀寫ini配置檔案GetPrivateProfileString WritePrivateProfileStr

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

python操作ini配置檔案

一、資料準備 1.建一個config的資料夾 2.在config資料夾下,新建一個cfg.ini檔案 選中config資料夾,點選滑鼠右鍵,new----> file,在檔名稱輸入框中輸入cfg.ini,點選確定。 3.在cfg.ini中填入資料,如下圖 4.cf

Sprngboot中的application.properties配置檔案查詢字典

Server server.address ---------伺服器地址 server.port ---------伺服器埠 server.context-parameters.[param name] ---------設定 servlet 上下文引數 server.context

如何對Python的類物件進行序列處理(Object of type 'BookCollection' is not JSON serializable)

  Python內建的json模組提供了非常完善的Python物件到JSON格式的轉換。 json.dumps()         將Python中的物件轉換為JSON中的字串物件json.loads()   &

INI配置檔案

配置檔案經常採用ini檔案,window有相關API。 WritePrivateProfileString用於寫檔案 BOOL WritePrivateProfileString( LPCTSTR lpAppName, // 欄位名,如果欄位名不存在,會被建立,可以建立多個欄位名

MFC利用系統API讀取INI配置檔案

confing.ini中的內容 [賬號] account=123|456 [是否修理裝備] repair=1   讀取INI字串: CString pourin; GetPrivateProfileString(L"賬號",L"account",NULL,pour

在Unity3D中使用ScriptableObject進行序列

ScriptableObject型別經常用於儲存一些Unity3D本身不可以打包的一些object,比如字串,一些類物件等。用這個型別的子型別,則可以用BuildPipeline打包成assetbundle包供後續使用,非常方便。這樣除了playerpref和c#檔案讀取外,另外的一種存取一些資料

《程式設計基礎》實驗題目2 c檔案讀取(反序列?) 連結串列排序

題目:   每個學生的資訊卡片包括學號、姓名和成績三項。定義儲存學生資訊的單向連結串列的結點型別;編寫函 數,由檔案依次讀入 n(n≥0)個學生的資訊,建立一個用於管理學生資訊的單向連結串列;編寫函式,對 該連結串列進行整理,保證該單向連結串列的結點順序滿足學號從小到大的順序。  演算法的設計與

中文翻譯版php.ini配置檔案

;;;;;;;;;;; ; 警告 ; ;;;;;;;;;;; ; 此配置檔案是對於新安裝的PHP的預設設定. ; 預設情況下,PHP使用此配置檔案安裝 ; 此配置針對開發目的,並且*不是*針對生產環境 ; 基於一些安全方面的考慮,在你的網站上線之前,請考慮使用php.ini-recommended ;

StringBoot 整合Redis解決儲存亂碼(通過StringRedisSerializer來進行序列

pom檔案中引入的依賴是 <dependency> <groupId>org.springframework.boot</groupId>

使用JSON JavaScriptSerializer 進行序列或反序列時出錯。字串的長度超過了為 maxJsonLength屬性

“/”應用程式中的伺服器錯誤。 使用 JSON JavaScriptSerializer 進行序列化或反序列化時出錯。字串的長度超過了為 maxJsonLength 屬性設定的值。 說明: 執行當前 Web 請求期間,出現未經處理的異常。請檢查堆疊跟蹤資訊,以瞭解有關該錯