person_dict = {‘name’: ‘pig’, ‘a(chǎn)ge’: 18, ‘sex’: ‘man’, ‘hometown’: ‘江西撫州’}
indent參數(shù)為縮進空格數(shù)
person_dict_json = json.dumps(person_dict, indent=4)print(person_dict_json, ‘\\\\n’)
2.Python的列表類型轉JSON
person_list = [‘pig’, 18, ‘man’, ‘江西撫州’]person_list_json = json.dumps(person_list)print(person_list_json, ‘\\\\n’)
3、Python的對象類型轉JSON
person_obj = Person(‘pig’, 18, ‘man’, ‘江西撫州’)
中間的匿名函數(shù)是獲得對象所有屬性的字典形式
person_obj_json = json.dumps(person_obj, default=lambda obj: obj.dict, indent=4)print(person_obj_json, ‘\\\\n’)
JSON轉Python類型:
json.loads()
4、JSON轉Python的dict類型
person_json = ‘{ “name”: “pig”,”age”: 18, “sex”: “man”, “hometown”: “江西撫州”}’
person_json_dict = json.loads(person_json)print(type(person_json_dict), ‘\\\\n’)
5、JSON轉Python的列表類型
person_json2 = ‘[“pig”, 18, “man”, “江西撫州”]’
person_json_list = json.loads(person_json2)print(type(person_json_list), ‘\\\\n’)
6、JSON轉Python的自定義對象類型
person_json = ‘{ “name”: “pig”,”age”: 18, “sex”: “man”, “hometown”: “江西撫州”}’
object_hook參數(shù)是將dict對象轉成自定義對象
person_json_obj = json.loads(person_json, object_hook=lambda d: Person(d[‘name’], d[‘a(chǎn)ge’], d[‘sex’], d[‘hometown’]))print(type(person_json_obj), ‘\\\\n’)
Python和JSON數(shù)據(jù)類型對應表
objectdictarrayliststringstrnumberint,long,floattrue,falseTrue,F(xiàn)alsenullNone
需要注意的點
JSON的鍵名和字符串都必須使用雙引號引起來,而Python中單引號也可以表示為字符串,所以這是個比較容易犯的錯誤!
Python類型與JSON相互轉換的時候到底是用load/dump還是用loads\\\\dumps?
不加s的方法入?yún)⒍嗔艘粋€fp表示filepath,最后多了一個寫入文件的操作。
所以我們在記憶的時候可以這樣記憶:
加s表示轉成字符串(str),不加s表示轉成文件。
相關推薦:編程視頻課程
更多關于云服務器,域名注冊,虛擬主機的問題,請訪問西部數(shù)碼官網(wǎng):m.ps-sw.cn