基于Python將JSON字符串轉(zhuǎn)換為字典
在 Python 中,將 JSON 字符串轉(zhuǎn)換為字典非常簡單,使用內(nèi)置的 json 模塊即可。
基本方法
import json
# JSON 字符串
json_str = '{"name": "張三", "age": 25, "city": "北京"}'
# 轉(zhuǎn)換為字典
data_dict = json.loads(json_str)
print(data_dict)
print(type(data_dict)) # <class 'dict'>
print(data_dict['name']) # 張三
完整示例
import json
# 示例 JSON 字符串
json_string = '''
{
"name": "李四",
"age": 30,
"hobbies": ["閱讀", "游泳", "編程"],
"address": {
"street": "中山路123號",
"city": "上海"
},
"is_student": false
}
'''
# 轉(zhuǎn)換為字典
data = json.loads(json_string)
# 訪問數(shù)據(jù)
print(f"姓名: {data['name']}")
print(f"年齡: {data['age']}")
print(f"愛好: {data['hobbies']}")
print(f"城市: {data['address']['city']}")
print(f"是否學(xué)生: {data['is_student']}")
# 遍歷字典
for key, value in data.items():
print(f"{key}: {value}")
處理異常
import json
json_str = '{"name": "王五", "age": 28' # 缺少閉合括號,無效JSON
try:
data = json.loads(json_str)
print("轉(zhuǎn)換成功:", data)
except json.JSONDecodeError as e:
print(f"JSON解析錯(cuò)誤: {e}")
print(f"錯(cuò)誤位置: 行 {e.lineno}, 列 {e.colno}")
從文件讀取 JSON
import json
# 從文件讀取 JSON
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f) # 注意是 load() 不是 loads()
print(data)
注意事項(xiàng)
JSON 格式要求:
- 鍵名必須用雙引號
"包裹(單引號會報(bào)錯(cuò)) - 字符串值必須用雙引號
- 布爾值用
true/false(Python 中是True/False) - 空值用
null(Python 中是None)
loads() vs load():
json.loads(): 從字符串解析json.load(): 從文件對象解析
中文處理:
# 確保正確處理中文
json_str = '{"name": "張三"}'
data = json.loads(json_str)
print(data['name']) # 正常顯示中文
# 輸出時(shí)保持中文
print(json.dumps(data, ensure_ascii=False)) # {"name": "張三"}
反向操作:字典轉(zhuǎn) JSON 字符串
import json
data = {
"name": "趙六",
"age": 35,
"city": "廣州"
}
# 轉(zhuǎn)換為 JSON 字符串
json_str = json.dumps(data, ensure_ascii=False, indent=2)
print(json_str)
這樣就可以輕松地在 JSON 字符串和 Python 字典之間進(jìn)行轉(zhuǎn)換了!
以上就是基于Python將JSON字符串轉(zhuǎn)換為字典的詳細(xì)內(nèi)容,更多關(guān)于Python JSON轉(zhuǎn)字典的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python Selenium 之?dāng)?shù)據(jù)驅(qū)動(dòng)測試的實(shí)現(xiàn)
這篇文章主要介紹了Python Selenium 之?dāng)?shù)據(jù)驅(qū)動(dòng)測試的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
python 把文件中的每一行以數(shù)組的元素放入數(shù)組中的方法
下面小編就為大家分享一篇python 把文件中的每一行以數(shù)組的元素放入數(shù)組中的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python中時(shí)間datetime的處理與轉(zhuǎn)換用法總結(jié)
今天小編就為大家分享一篇關(guān)于Python中時(shí)間datetime的處理與轉(zhuǎn)換用法總結(jié),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02
TensorFlow2基本操作之合并分割與統(tǒng)計(jì)
這篇文章主要介紹了TensorFlow2基本操作之合并分割與統(tǒng)計(jì),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
Python?matplotlib實(shí)戰(zhàn)之散點(diǎn)圖繪制
散點(diǎn)圖,又名點(diǎn)圖、散布圖、X-Y圖,是將所有的數(shù)據(jù)以點(diǎn)的形式展現(xiàn)在平面直角坐標(biāo)系上的統(tǒng)計(jì)圖表,本文主要為大家介紹了如何使用Matplotlib繪制散點(diǎn)圖,需要的可以參考下2023-08-08

