python中的list存储到txt中,再次list形式进行读取

博客讲述将list文件存入txt配置文件时,因需转为str模式,读取时无法恢复成list类型。而json.loads和json.dumps这对函数提供了解决办法,json.dumps()可将Python数据类型列表编码为json格式,json.loads()能将json格式数据转换为字典。

就是将一个list文件读取后,存入一个txt配置文件。存入时,发现list文件无法直接存入,必须转为str模式。但在读取txt时,就无法恢复成list类型来读取了(准确地说,即使强行使用list读取,读出来的也是单个的字符)。

*发现 json.loads和 json.dumps这对兄弟提供了一个很好的办法。

#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是一个list,其中每个元素包含地域信息,每个元素又是单独的一个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格式处理函数(可以这么理解,json是字符串)
    (1)json.dumps()函数是将一个Python数据类型列表进行json格式的编码(可以这么理解,json.dumps()函数是将字典转化为字符串)
    (2)json.loads()函数是将json格式数据转换为字典(可以这么理解,json.loads()函数是将字符串转化为字典)
'''
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))

输出的结果为:
实验结果描述

json小结:

json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串)
(1)json.dumps()函数是将一个Python数据类型列表进行json格式的编码(可以这么理解,json.dumps()函数是将字典转化为字符串)
(2)json.loads()函数是将json格式数据转换为字典(可以这么理解,json.loads()函数是将字符串转化为字典)

Python中,将数据存储txt文件读取txt文件数据是常见的数据处理操作。对于存储列表数据到txt文件,有相应的实现方法。 存储数据到txt文件时,可以定义一个函数来完成此操作。以下是一个示例代码,用于将列表数据保存txt文件: ```python def Save_list(list1,filename): file2 = open(filename + '.txt', 'w') for i in range(len(list1)): for j in range(len(list1[i])): file2.write(str(list1[i][j])) # write函数不能写int类型的参数,所以使用str()转化 file2.write('\t') # 相当于Tab一下,换一个单元格 file2.write('\n') # 写完一行立马换行 file2.close() # 示例使用 data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] Save_list(data, 'test') ``` 上述代码定义了`Save_list`函数,它接受一个二维列表`list1`和文件名`filename`作为参数,通过循环遍历列表元素将其转化为字符串写入文件,元素间用制表符分隔,每行结束后换行,最后关闭文件。 读取txt文件数据时,可以使用以下代码: ```python def read_list(filename): result = [] with open(filename + '.txt', 'r') as file: for line in file: line = line.strip() elements = line.split('\t') row = [int(x) if x.isdigit() else x for x in elements] result.append(row) return result # 读取数据 loaded_data = read_list('test') print(loaded_data) ``` 上述代码定义了`read_list`函数,它接受文件名`filename`作为参数,使用`with`语句打开文件以确保文件操作完成后自动关闭。逐行读取文件内容,去除每行首尾的空白字符,按制表符分割每行元素,将能转换为整数的元素转换为整数类型,最后将每行元素组成的列表添加到结果列表中返回。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值