python中json到dict轉換

2021-07-05 02:45:56 字數 1930 閱讀 2856

1、基本是利用python自帶json庫進行轉換

** (實際上json就是python字典的字串表示,但是字典作為乙個複雜物件是無法直接轉換成定義它的**的字串,python有乙個叫******json的庫可以方便的完成json的生成和解析,這個包已經包含在python2.6中,就叫json 主要包含四個方法: dump和dumps(從python生成json),load和loads(解析json成python的資料型別)dump和dumps的唯一區別是dump會生成乙個類檔案物件,dumps會生成字串,同理load和loads分別解析類檔案物件和字串格式的json)

2、遇到漢字問題

**:

在python 下面乙個包含中文字串的列表(list)或字典,直接使用print會出現以下的結果:

>>> dict =

>>> print dict

在輸出處理好的資料結構的時候很不方便,需要使用以下方法進行輸出:

>>> import json

>>> print json.dumps(dict, encoding="utf-8", ensure_ascii=false)

注意上面的兩個引數

如果是字串,直接輸出或者

print str.encode("utf-8")

print 的重定向:

fin = open("xx.txt", 'r');

print >>fin, "hello world", 12;

fin.close();

但是,要將print的內容重定向到檔案中,會報unicodeencodeerror: 'ascii' codec can't encode characters in position 48-51這個錯。

在import sys後加上下面兩句就ok了。

reload(sys)

sys.setdefaultencoding('utf8')

3、我自己的處理

經驗來自於探索,直接貼**

從json檔案到json字串,方便輸入json測試

json_str =""

try:

withopen('fetch.json'

, 'r')asf:

data = json.load(f,

"utf-8")

g_log.debug("menu dict %s"

, data)

#print "--------",data["menu"]["button"][0]["name"].encode("utf-8")

print"--------"

,data

#json_str = json.dumps(data, encoding="utf-8", ensure_ascii=false)

json_str = json.dumps(data,

encoding="utf-8"

, ensure_ascii=false)

g_log.debug("menu json %s"

, data)

print"jsonstr "

,json_str

except:

g_log.error("open json file menu.json error ")

return-1

, ""

post資料輸出時,還需要encode,不然對面解析錯誤,原因後續探索

self.m_menu_body = json_str.encode("utf-8")

【注】:用於總結,不好的地方請擔待

python 中字典(dic)的用法

dic 字典使用key values方式,也就是鍵 值的方式 print dic james for key in dic 取出字典中的key值 print key for key in dic.keys 也可以通過這種將key值取出來 print key for values in dic 這說明...

python中字典 dic的操作

d 獲取成員 print d name python的優雅 有就返回,沒有預設返回none,可以設定預設值 print d.get nm 預設值 設定成員 存在就更新 d age 30 不存在時就新增 d weight 80 更新,存在的鍵就更新,不存在的鍵就新增 d.update 刪除元素 del...

Python實現讀取json檔案到excel表

一 需求 1 score.json 檔案內容 2 讀取json檔案儲存到資料庫,並計算出每個人的總分程式設計客棧和平均分 二 實現 import json,xlwt def read score jsonfile with open jsonfile,encoding utf 8 as f 將jso...