python3.6 如何將list存入txt后再讀出list的方法
今天遇到一個(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這對(duì)兄弟提供了一個(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)化為字典)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
利用Python代碼實(shí)現(xiàn)模擬動(dòng)態(tài)指針時(shí)鐘
這篇文章主要為大家詳細(xì)介紹了如何利用python和C++代碼實(shí)現(xiàn)模擬動(dòng)態(tài)指針時(shí)鐘,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-04-04
selenium+unittest實(shí)現(xiàn)web自動(dòng)化的示例代碼
本文主要介紹了selenium+unittest實(shí)現(xiàn)web自動(dòng)化的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
python實(shí)現(xiàn)一個(gè)搖骰子小游戲
大家好,本篇文章主要講的是python實(shí)現(xiàn)一個(gè)搖骰子小游戲,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01
淺談tensorflow與pytorch的相互轉(zhuǎn)換
本文主要介紹了簡(jiǎn)單介紹一下tensorflow與pytorch的相互轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
matplotlib教程——強(qiáng)大的python作圖工具庫
這篇文章主要介紹了python matplotlib的相關(guān)資料,幫助大家更好的利用python matplotlib庫繪制圖表,感興趣的朋友可以了解下2020-10-10
使用Python制作自動(dòng)推送微信消息提醒的備忘錄功能
這篇文章主要介紹了使用Python制作自動(dòng)推送微信消息提醒的備忘錄功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-09-09

