博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSON 和 Hash(Ruby)、Dict(Python3)的相互转换
阅读量:4229 次
发布时间:2019-05-26

本文共 9518 字,大约阅读时间需要 31 分钟。

JSON <=> json_data.json 

json_data.json to json_str

# json_data.json{  "President": "Alan Isaac",  "CEO": "David Richardson",  "India": [    "Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"  ],  "Srilanka": [    "Lasith Malinga", "Angelo Mathews",    "Kumar Sangakkara"  ],  "England": [    "Alastair Cook",    "Jonathan Trott",    "Kevin Pietersen"  ]}
# Python3with open("json_data.json") as f:    json_str = f.read()print("JSON字符串:")print(json_str)# print(json.load(open("json_data.json")))# print(json.loads(open("json_data.json", 'rb').read()))------------------------------------------------------------"D:\Program Files\Python36\python3.exe" D:/MyProject/Python/workspace/test.pyJSON字符串:{  "President": "Alan Isaac",  "CEO": "David Richardson",  "India": [    "Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"  ],  "Srilanka": [    "Lasith Malinga", "Angelo Mathews",    "Kumar Sangakkara"  ],  "England": [    "Alastair Cook",    "Jonathan Trott",    "Kevin Pietersen"  ]}Process finished with exit code 0
# Rubyjson_str = File.read('json_data.json')puts "JSON字符串:"puts json_str------------------------------------------------------------D:\Ruby23-x64\bin\ruby.exe D:/MyProject/Ruby/workspace/test.rbJSON字符串:{  "President": "Alan Isaac",  "CEO": "David Richardson",  "India": [    "Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"  ],  "Srilanka": [    "Lasith Malinga", "Angelo Mathews",    "Kumar Sangakkara"  ],  "England": [    "Alastair Cook",    "Jonathan Trott",    "Kevin Pietersen"  ]}Process finished with exit code 0

json_str to json_data.json 

# Python3import jsondict_obj = {'President': 'Alan Isaac', 'CEO': 'David Richardson',            'India': ['Sachin Tendulkar', 'Virender Sehwag', 'Gautam Gambhir'],            'Srilanka': ['Lasith Malinga', 'Angelo Mathews', 'Kumar Sangakkara'],            'England': ['Alastair Cook', 'Jonathan Trott', 'Kevin Pietersen']}json_str = json.dumps(dict_obj, indent=2)with open('json_data.json', 'w', encoding='utf-8') as file:    file.write(json_str)# or# with open('json_data.json', 'w') as f:#     json.dump(dict_obj, f, indent=2)------------------------------------------------------------# json_data.json{  "President": "Alan Isaac",  "CEO": "David Richardson",  "India": [    "Sachin Tendulkar",    "Virender Sehwag",    "Gautam Gambhir"  ],  "Srilanka": [    "Lasith Malinga",    "Angelo Mathews",    "Kumar Sangakkara"  ],  "England": [    "Alastair Cook",    "Jonathan Trott",    "Kevin Pietersen"  ]}
# Rubyrequire 'json'hash_obj = {"President" => "Alan Isaac", "CEO" => "David Richardson",             "India" => ["Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"],             "Srilanka" => ["Lasith Malinga", "Angelo Mathews", "Kumar Sangakkara"],             "England" => ["Alastair Cook", "Jonathan Trott", "Kevin Pietersen"]}json_str = JSON.pretty_generate(hash_obj)File.open("json_data.json","w") do |f|  f.puts json_strend# or# json_str = JSON.dump(hash_obj)# myFile = File.new("json_data.json","w")# myFile.puts json_str# myFile.close------------------------------------------------------------# json_data.json{  "President": "Alan Isaac",  "CEO": "David Richardson",  "India": [    "Sachin Tendulkar",    "Virender Sehwag",    "Gautam Gambhir"  ],  "Srilanka": [    "Lasith Malinga",    "Angelo Mathews",    "Kumar Sangakkara"  ],  "England": [    "Alastair Cook",    "Jonathan Trott",    "Kevin Pietersen"  ]}

JSON <=> Hash

JSON to Hash

# Rubyrequire 'json'require 'pp'json_str = File.read('json_data.json')puts "JSON字符串:"puts json_str# hash_obj = JSON.load(json_str)hash_obj = JSON.parse(json_str)puts "Ruby 的 Hash:"puts hash_objpp hash_obj  # 可以将 Hash 以便于人阅读的方式输出
D:\Ruby23-x64\bin\ruby.exe D:/MyProject/Ruby/workspace/test.rbJSON字符串:{  "President": "Alan Isaac",  "CEO": "David Richardson",  "India": [    "Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"  ],  "Srilanka": [    "Lasith Malinga", "Angelo Mathews",    "Kumar Sangakkara"  ],  "England": [    "Alastair Cook",    "Jonathan Trott",    "Kevin Pietersen"  ]}Ruby 的 Hash:{"President"=>"Alan Isaac", "CEO"=>"David Richardson", "India"=>["Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"], "Srilanka"=>["Lasith Malinga", "Angelo Mathews", "Kumar Sangakkara"], "England"=>["Alastair Cook", "Jonathan Trott", "Kevin Pietersen"]}{"President"=>"Alan Isaac", "CEO"=>"David Richardson", "India"=>["Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"], "Srilanka"=>["Lasith Malinga", "Angelo Mathews", "Kumar Sangakkara"], "England"=>["Alastair Cook", "Jonathan Trott", "Kevin Pietersen"]}Process finished with exit code 0

 Hash to JSON

# Rubyrequire 'json'require 'pp'hash_obj = {"President" => "Alan Isaac", "CEO" => "David Richardson",             "India" => ["Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"],             "Srilanka" => ["Lasith Malinga", "Angelo Mathews", "Kumar Sangakkara"],             "England" => ["Alastair Cook", "Jonathan Trott", "Kevin Pietersen"]}puts "Ruby 的 Hash:"puts hash_objjson_str = JSON.dump(hash_obj)# json_str = hash_obj.to_json ## when require 'json'puts "JSON字符串:"puts json_str
D:\Ruby23-x64\bin\ruby.exe D:/MyProject/Ruby/workspace/test2.rbRuby 的 Hash:{"President"=>"Alan Isaac", "CEO"=>"David Richardson", "India"=>["Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"], "Srilanka"=>["Lasith Malinga", "Angelo Mathews", "Kumar Sangakkara"], "England"=>["Alastair Cook", "Jonathan Trott", "Kevin Pietersen"]}JSON字符串:{"President":"Alan Isaac","CEO":"David Richardson","India":["Sachin Tendulkar","Virender Sehwag","Gautam Gambhir"],"Srilanka":["Lasith Malinga","Angelo Mathews","Kumar Sangakkara"],"England":["Alastair Cook","Jonathan Trott","Kevin Pietersen"]}Process finished with exit code 0

JSON <=> Dict

JSON to Dict

# Python3import jsonwith open("json_data.json") as f:    json_str = f.read()print("JSON字符串:")print(json_str)dict_obj = json.loads(json_str)print("Python3 的 Dict:")print(dict_obj)
"D:\Program Files\Python36\python3.exe" D:/MyProject/Python/workspace/test.pyJSON字符串:{  "President": "Alan Isaac",  "CEO": "David Richardson",  "India": [    "Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"  ],  "Srilanka": [    "Lasith Malinga", "Angelo Mathews",    "Kumar Sangakkara"  ],  "England": [    "Alastair Cook",    "Jonathan Trott",    "Kevin Pietersen"  ]}Python3 的 Dict:{'President': 'Alan Isaac', 'CEO': 'David Richardson', 'India': ['Sachin Tendulkar', 'Virender Sehwag', 'Gautam Gambhir'], 'Srilanka': ['Lasith Malinga', 'Angelo Mathews', 'Kumar Sangakkara'], 'England': ['Alastair Cook', 'Jonathan Trott', 'Kevin Pietersen']}Process finished with exit code 0

 Dict to JSON

# Python3import jsondict_obj = {'President': 'Alan Isaac', 'CEO': 'David Richardson',            'India': ['Sachin Tendulkar', 'Virender Sehwag', 'Gautam Gambhir'],            'Srilanka': ['Lasith Malinga', 'Angelo Mathews', 'Kumar Sangakkara'],            'England': ['Alastair Cook', 'Jonathan Trott', 'Kevin Pietersen']}print("Python3 的 Dict:")print(dict_obj)print("JSON字符串:")json_str = json.dumps(dict_obj)print(json_str)

 

"D:\Program Files\Python36\python3.exe" D:/MyProject/Python/workspace/test2.pyPython3 的 Dict:{'President': 'Alan Isaac', 'CEO': 'David Richardson', 'India': ['Sachin Tendulkar', 'Virender Sehwag', 'Gautam Gambhir'], 'Srilanka': ['Lasith Malinga', 'Angelo Mathews', 'Kumar Sangakkara'], 'England': ['Alastair Cook', 'Jonathan Trott', 'Kevin Pietersen']}JSON字符串:{"President": "Alan Isaac", "CEO": "David Richardson", "India": ["Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"], "Srilanka": ["Lasith Malinga", "Angelo Mathews", "Kumar Sangakkara"], "England": ["Alastair Cook", "Jonathan Trott", "Kevin Pietersen"]}Process finished with exit code 0

JSON <=> PrettyPrint

Ruby_JSON PrettyPrint

# Rubyrequire 'json'hash_obj = {"President" => "Alan Isaac", "CEO" => "David Richardson",             "India" => ["Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"],             "Srilanka" => ["Lasith Malinga", "Angelo Mathews", "Kumar Sangakkara"],             "England" => ["Alastair Cook", "Jonathan Trott", "Kevin Pietersen"]}json_str = JSON.pretty_generate(hash_obj)puts "JSON字符串:"puts json_str------------------------------------------------------------D:\Ruby23-x64\bin\ruby.exe D:/MyProject/Ruby/workspace/test2.rbJSON字符串:{  "President": "Alan Isaac",  "CEO": "David Richardson",  "India": [    "Sachin Tendulkar",    "Virender Sehwag",    "Gautam Gambhir"  ],  "Srilanka": [    "Lasith Malinga",    "Angelo Mathews",    "Kumar Sangakkara"  ],  "England": [    "Alastair Cook",    "Jonathan Trott",    "Kevin Pietersen"  ]}Process finished with exit code 0

Python3_JSON PrettyPrint 

# Python3import jsondict_obj = {'President': 'Alan Isaac', 'CEO': 'David Richardson',            'India': ['Sachin Tendulkar', 'Virender Sehwag', 'Gautam Gambhir'],            'Srilanka': ['Lasith Malinga', 'Angelo Mathews', 'Kumar Sangakkara'],            'England': ['Alastair Cook', 'Jonathan Trott', 'Kevin Pietersen']}print("JSON字符串:")json_str = json.dumps(dict_obj, indent=2)print(json_str)------------------------------------------------------------"D:\Program Files\Python36\python3.exe" D:/MyProject/Python/workspace/test2.pyJSON字符串:{  "President": "Alan Isaac",  "CEO": "David Richardson",  "India": [    "Sachin Tendulkar",    "Virender Sehwag",    "Gautam Gambhir"  ],  "Srilanka": [    "Lasith Malinga",    "Angelo Mathews",    "Kumar Sangakkara"  ],  "England": [    "Alastair Cook",    "Jonathan Trott",    "Kevin Pietersen"  ]}Process finished with exit code 0

 

转载地址:http://tcjqi.baihongyu.com/

你可能感兴趣的文章
Oracle 11g 新特性 -- Online Patching (Hot Patching 热补丁)说明
查看>>
Oracle 11g 新特性 -- ASM 增强 说明
查看>>
Oracle 11g 新特性 -- Database Replay (重演) 说明
查看>>
Oracle 11g 新特性 -- 自动诊断资料档案库(ADR) 说明
查看>>
CSDN博客之星 投票说明
查看>>
Oracle wallet 配置 说明
查看>>
Oracle smon_scn_time 表 说明
查看>>
VBox fdisk 不显示 添加的硬盘 解决方法
查看>>
Java多态性理解
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第一篇:互联网时代U盘化生存方式 【张振华.Jack】
查看>>
CentOS6.4配置Hadoop-2.6.0集群配置安装指南(经过实战演练)【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第二篇:专注的力量 [张振华.Jack]
查看>>
BFS——求矩阵中“块”的个数
查看>>
BFS——走迷宫的最小步数
查看>>
并查集——好朋友
查看>>
关键路径
查看>>
Web前端学习笔记——JavaScript之事件详解
查看>>
Web前端学习笔记——JavaScript之事件、创建元素、节点操作
查看>>
Web前端学习笔记——JavaScript之正则表达式、伪数组、垃圾回收
查看>>
Web前端学习笔记——JavaScript 之继承、函数进阶
查看>>