一、Python解析JSON字元串失敗
在使用Python處理JSON字元串時,有時我們可能會遇到解析JSON字元串失敗的情況。這種情況大多數是由於JSON字元串格式錯誤造成的。
以下是一些JSON字元串格式錯誤的示例:
{ 'name': 'Tom', 'age': 20 }
{ "name": "Tom", "age": 20, }
{ "name": "Tom", "age": "twenty" }
以上JSON字元串的錯誤分別是單引號代替雙引號、多了一個逗號、數據類型錯誤。這些錯誤都會導致Python解析JSON字元串失敗。
當Python解析JSON字元串失敗時,我們需要通過JSON字元串的格式化來找出錯誤,並做出相應的修正。
二、Python處理JSON字元串
Python內置的json模塊提供了處理JSON字元串的相關函數。我們可以使用json.loads()函數將JSON字元串解析為Python對象,使用json.dumps()函數將Python對象轉換為JSON字元串。
下面是json.loads()函數的常用用法:
import json json_str = '{ "name": "Tom", "age": 20 }' obj = json.loads(json_str) print(obj) # {'name': 'Tom', 'age': 20}
下面是json.dumps()函數的常用用法:
import json obj = { "name": "Tom", "age": 20 } json_str = json.dumps(obj) print(json_str) # {"name": "Tom", "age": 20}
需要注意的是,Python的數據類型與JSON的數據類型並不完全相同。例如,Python中的元組(tuple)在JSON中並沒有對應的類型,因此在轉換時需要使用列表。
三、Python拼接JSON字元串
在實際應用中,我們需要將多個Python對象合併為一個JSON字元串。這時,我們可以使用Python的字典和列表組合的方式來拼接。
import json obj1 = { "name": "Tom", "age": 20 } obj2 = { "name": "Jack", "age": 22 } obj_list = [obj1, obj2] json_str = json.dumps(obj_list) print(json_str) # [{"name": "Tom", "age": 20}, {"name": "Jack", "age": 22}]
四、Python讀取JSON並解析
在實際應用中,我們通常需要從JSON文件或者遠程API介面獲取JSON數據並進行解析。Python提供了相應的函數來實現這個過程。
下面是從本地JSON文件中讀取數據的示例:
import json with open('data.json', 'r') as f: json_str = f.read() obj = json.loads(json_str) print(obj) # {'name': 'Tom', 'age': 20}
需要注意的是,open(‘data.json’, ‘r’)用於打開JSON文件,並將內容讀取到字元串json_str中。
五、Python定義JSON字元串
在實際應用中,我們通常需要手動定義JSON字元串。Python中可以使用字典類型來快速定義JSON字元串。
import json obj = { "name": "Tom", "age": 20 } json_str = json.dumps(obj) print(json_str) # {"name": "Tom", "age": 20}
六、Python解析JSON文件
除了從字元串中解析JSON數據外,Python還可以直接從文件中解析JSON數據。使用json.load()函數即可實現。
import json with open('data.json', 'r') as f: obj = json.load(f) print(obj) # {'name': 'Tom', 'age': 20}
七、Python讀取JSON數據
如果要從JSON文件中讀取某一屬性的值,可以使用字典的方式進行獲取。注意,獲取的結果是字元串類型,如果需要使用其他數據類型需要進行類型轉換。
import json with open('data.json', 'r') as f: data = json.load(f) name = data['name'] print(name) # Tom
八、Python保存JSON文件
在實際應用中,我們通常需要將Python對象保存到JSON文件中。Python提供了json.dump()函數來實現。
import json obj = { "name": "Tom", "age": 20 } with open('output.json', 'w') as f: json.dump(obj, f) print('保存成功!')
九、Python寫入JSON
如果要向JSON文件中寫入數據,可以使用如下方法:
import json with open('data.json', 'r+') as f: data = json.load(f) data['name'] = 'Jack' f.seek(0) json.dump(data, f) print('寫入成功!')
其中,’r+’表示以讀寫方式打開文件,f.seek(0)用於將文件指針移動到文件頭部。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/247426.html