亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python json object_pairs_hook 字典解碼為無

python json object_pairs_hook 字典解碼為無

慕村9548890 2021-09-11 20:57:43
在使用 python 標準json庫時,我偶然發現了一個非常令人驚訝的觀察結果,更具體地說,是object_pairs_hook從那里使用時。這是我的數據:items.json:--{    "menuitem": [      {"value": "New", "onclick": "CreateNewDoc()"},      {"value": "Open", "onclick": "OpenDoc()"},      {"value": "Close", "onclick": "CloseDoc()"}    ]}--這是我的最低工作代碼:Jupyter QtConsole 4.3.1Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)]Type 'copyright', 'credits' or 'license' for more informationIPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.import jsondef dummy_hook(input):    print("INPUT:",input)filename = r'items.json'with open(filename, 'r') as f:    data = json.load(f,object_pairs_hook=dummy_hook)令人驚訝的是(對我來說),結果是這樣的:INPUT: [('value', 'New'), ('onclick', 'CreateNewDoc()')]INPUT: [('value', 'Open'), ('onclick', 'OpenDoc()')]INPUT: [('value', 'Close'), ('onclick', 'CloseDoc()')]INPUT: [('menuitem', [None, None, None])]特別是,您會發現帶有“value”/“onclick”對的三個字典已被解碼為None. 這對我來說是個問題,因為我一直希望對這些進行一些進一步的操作。問題:這是意料之中的嗎?我在這里做錯了嗎?編輯:因此將鉤子函數更改為:def dummy_hook(input):    print("INPUT:",input)    return 7確實將打印結果更改為:INPUT: [('value', 'New'), ('onclick', 'CreateNewDoc()')]INPUT: [('value', 'Open'), ('onclick', 'OpenDoc()')]INPUT: [('value', 'Close'), ('onclick', 'CloseDoc()')]INPUT: [('menuitem', [7,7,7])]添加return語句如何改變解碼結果,我還是不明白。但是,原則上,這解決了問題。
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 275 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號