今天遇到一個(gè)需求,就是將一個(gè)list文件讀取后,存入一個(gè)txt配置文件。存入時(shí),發(fā)現(xiàn)list文件無法直接存入,必須轉(zhuǎn)為str模式。
但在讀取txt時(shí),就無法恢復(fù)成list類型來讀取了(準(zhǔn)確地說,即使強(qiáng)行使用list讀取,讀出來的也是單個(gè)的字符)。
查了查資料,發(fā)現(xiàn)json.loads和json.dumps這對兄弟提供了一個(gè)很好的辦法。下面看代碼
#python 3.6 #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'BH8ANK' '''取出字典中的value中的字典的value ''' import json x = {'RegionSet': [{'Region': 'ap-beijing', 'RegionName': '\xe5\x8d\x8e\xe5\x8c\x97\xe5\x9c\xb0\xe5\x8c\xba(\xe5\x8c\x97\xe4\xba\xac)', 'RegionState': 'AVAILABLE'}, {'Region': 'ap-chengdu', 'RegionName': '\xe8\xa5\xbf\xe5\x8d\x97\xe5\x9c\xb0\xe5\x8c\xba(\xe6\x88\x90\xe9\x83\xbd)', 'RegionState': 'AVAILABLE'}, {'Region': 'ap-chongqing', 'RegionName': '\xe8\xa5\xbf\xe5\x8d\x97\xe5\x9c\xb0\xe5\x8c\xba(\xe9\x87\x8d\xe5\xba\x86)', 'RegionState': 'AVAILABLE'}, {'Region': 'ap-guangzhou', 'RegionName': '\xe5\x8d\x8e\xe5\x8d\x97\xe5\x9c\xb0\xe5\x8c\xba(\xe5\xb9\xbf\xe5\xb7\x9e)', 'RegionState': 'AVAILABLE'}, {'Region': 'ap-guangzhou-open', 'RegionName': '\xe5\x8d\x8e\xe5\x8d\x97\xe5\x9c\xb0\xe5\x8c\xba(\xe5\xb9\xbf\xe5\xb7\x9eOpen)', 'RegionState': 'AVAILABLE'}, {'Region': 'ap-hongkong', 'RegionName': '\xe4\xb8\x9c\xe5\x8d\x97\xe4\xba\x9a\xe5\x9c\xb0\xe5\x8c\xba(\xe9\xa6\x99\xe6\xb8\xaf)', 'RegionState': 'AVAILABLE'}, {'Region': 'ap-mumbai', 'RegionName': '\xe4\xba\x9a\xe5\xa4\xaa\xe5\x9c\xb0\xe5\x8c\xba(\xe5\xad\x9f\xe4\xb9\xb0)', 'RegionState': 'AVAILABLE'}, {'Region': 'ap-seoul', 'RegionName': '\xe4\xb8\x9c\xe5\x8d\x97\xe4\xba\x9a\xe5\x9c\xb0\xe5\x8c\xba(\xe9\xa6\x96\xe5\xb0\x94)', 'RegionState': 'AVAILABLE'}, {'Region': 'ap-shanghai', 'RegionName': '\xe5\x8d\x8e\xe4\xb8\x9c\xe5\x9c\xb0\xe5\x8c\xba(\xe4\xb8\x8a\xe6\xb5\xb7)', 'RegionState': 'AVAILABLE'}, {'Region': 'ap-shanghai-fsi', 'RegionName': '\xe5\x8d\x8e\xe4\xb8\x9c\xe5\x9c\xb0\xe5\x8c\xba(\xe4\xb8\x8a\xe6\xb5\xb7\xe9\x87\x91\xe8\x9e\x8d)', 'RegionState': 'AVAILABLE'}, {'Region': 'ap-shenzhen-fsi', 'RegionName': '\xe5\x8d\x8e\xe5\x8d\x97\xe5\x9c\xb0\xe5\x8c\xba(\xe6\xb7\xb1\xe5\x9c\xb3\xe9\x87\x91\xe8\x9e\x8d)', 'RegionState': 'AVAILABLE'}, {'Region': 'ap-singapore', 'RegionName': '\xe4\xb8\x9c\xe5\x8d\x97\xe4\xba\x9a\xe5\x9c\xb0\xe5\x8c\xba(\xe6\x96\xb0\xe5\x8a\xa0\xe5\x9d\xa1)', 'RegionState': 'AVAILABLE'}, {'Region': 'eu-frankfurt', 'RegionName': '\xe6\xac\xa7\xe6\xb4\xb2\xe5\x9c\xb0\xe5\x8c\xba(\xe5\xbe\xb7\xe5\x9b\xbd)', 'RegionState': 'AVAILABLE'}, {'Region': 'na-ashburn', 'RegionName': '\xe7\xbe\x8e\xe5\x9b\xbd\xe4\xb8\x9c\xe9\x83\xa8(\xe5\xbc\x97\xe5\x90\x89\xe5\xb0\xbc\xe4\xba\x9a)', 'RegionState': 'AVAILABLE'}, {'Region': 'na-siliconvalley', 'RegionName': '\xe7\xbe\x8e\xe5\x9b\xbd\xe8\xa5\xbf\xe9\x83\xa8(\xe7\xa1\x85\xe8\xb0\xb7)', 'RegionState': 'AVAILABLE'}, {'Region': 'na-toronto', 'RegionName': '\xe5\x8c\x97\xe7\xbe\x8e\xe5\x9c\xb0\xe5\x8c\xba(\xe5\xa4\x9a\xe4\xbc\xa6\xe5\xa4\x9a)', 'RegionState': 'AVAILABLE'}], 'RequestId': 'CDFBE924-36FE-30AE-1B46-5AFCDF8A943D', 'TotalCount': 16} y_list = x['RegionSet'] # print(y)#y是一個(gè)list,其中每個(gè)元素包含地域信息,每個(gè)元素又是單獨(dú)的一個(gè)dict # print(y_list) i = 0 c_list = [] for i in range(len(y_list)): b_dict = y_list[i] c_list.append(b_dict['Region']) # print(a['Region']) # print(b_dict) print('============clist=============') print(c_list) ''' json.dumps()和json.loads()是json格式處理函數(shù)(可以這么理解,json是字符串) (1)json.dumps()函數(shù)是將一個(gè)Python數(shù)據(jù)類型列表進(jìn)行json格式的編碼(可以這么理解,json.dumps()函數(shù)是將字典轉(zhuǎn)化為字符串) (2)json.loads()函數(shù)是將json格式數(shù)據(jù)轉(zhuǎn)換為字典(可以這么理解,json.loads()函數(shù)是將字符串轉(zhuǎn)化為字典) ''' c_list = json.dumps(c_list) '''將c_list存入文件 ''' a = open(r"D:\python_test\data_source_list.txt", "w",encoding='UTF-8') a.write(c_list) a.close() '''讀取data_source_list文件 ''' b = open(r"D:\python_test\data_source_list.txt", "r",encoding='UTF-8') out = b.read() out = json.loads(out) print(out) print(isinstance(out,list))
輸出如圖:
有關(guān)json模塊的說明:
json.dumps()和json.loads()是json格式處理函數(shù)(可以這么理解,json是字符串)
(1)json.dumps()函數(shù)是將一個(gè)Python數(shù)據(jù)類型列表進(jìn)行json格式的編碼(可以這么理解,json.dumps()函數(shù)是將字典轉(zhuǎn)化為字符串)
(2)json.loads()函數(shù)是將json格式數(shù)據(jù)轉(zhuǎn)換為字典(可以這么理解,json.loads()函數(shù)是將字符串轉(zhuǎn)化為字典)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
