\.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 請求期間,出現未經處理的異常。請檢查堆疊跟蹤資訊,以瞭解有關該錯