python_文件操作实例:文件中存有url:XX@pwd:XX形式的文件,现在要将文件中的数据取出并转变成字典->{‘url‘:‘XX‘,‘pwd‘:‘XX‘}格式

有两行数据,存放在txt文件里面(手动建立文件,并添加如下数据):

url:/futureloan/mvc/api/member/register@mobile:18866668888@pwd:123456
url:/futureloan/mvc/api/member/recharge@mobile:18866668888@amount:1000
请利用上课所学知识,把txt里面的两行内容,取出然后返回如下格式的数据:(可定义函数)
[{‘url’:’/futureloan/mvc/api/member/register’,‘mobile’:‘18866668888’,‘pwd’:‘123456’},
{‘url’:’/futureloan/mvc/api/member/recharge’,‘mobile’:‘18866668888’,‘amount’:‘1000’}]

思路:

1、先用两个变量来接收文档中的两行数据
	先处理第一个字符串
	'url:/futureloan/mvc/api/member/register@mobile:18866668888@pwd:123456'
2、以@符来将得到的字符串分隔开,变成了一个拥有3个字符串的列表m_list
	m_list =['url:/futureloan/mvc/api/member/register','mobile:18866668888','pwd:123456']
3、分析上面的m_list中的元素,其中的字符串中间都有一个冒号,冒号前面的就是字典的键,冒号后面的是字典的值
  将m_list中的每个字符串m_list[index]':'分隔成两个小列表,
	m_list[i] = ['url','/futureloan/mvc/api/member/register']
	dict[m_list[i][0]] = m_list[i][1]
4、将每个字典都存在一个新列表中

代码示例:
在该文件所在的包下建立一个lx01.txt文件,内容:

url:/futureloan/mvc/api/member/register@mobile:18866668888@pwd:123456
url:/futureloan/mvc/api/member/recharge@mobile:18866668888@amount:1000

#按行读取lx01.txt文件的内容,
with open('lx01.txt', encoding ='utf8') as f:
    a = f.readline()
with open('lx01.txt', encoding ='utf8') as f:
    next(f)
    b = f.readline()

# print('a:', a)
# print('b:', b)

def trans(m_str):
    m_list = m_str.split('@') #以@为分隔点,将字符串分开
    #m_list是列表,元素是字符串,每个元素中间都有一个:,['url:/fut...', 'mob..:1886..', 'amo..:1000']
    m_dict = {}
    for i in range(len(m_list)):
        li = m_list[i].split(':')
        #以:将元素分为两份,一份作为dict的键,一份作为字典的值,存入m_dict
        m_dict[li[0]] = li[1]
    return m_dict

def trans_list(a_dict, b_dict):
    li = []
    li.append(a_dict)  # 将字典存放在新列表中
    li.append(b_dict)
    print(li)

trans_list(trans(a), trans(b))

运行结果(太长不方便截图):

[{'url': '/futureloan/mvc/api/member/register', 'mobile': '18866668888', 'pwd': '123456\n'}, {'url': '/futureloan/mvc/api/member/recharge', 'mobile': '18866668888', 'amount': '1000'}]

你可能感兴趣的:(python)