python如何将由多个用户信息组成的段落按不同的用户拆分开来?
问题描述
Name: a002ID: ffd7eb90-3705-4248-8c21-f3d579ccc54dDisplay Name: Email: .com.cnFirst Name: a002Last Name: liDepartment: Title: Description: Account Disabled: falseAccount Unlocked At: 2017-04-24 07:25:08ZName: adminID: c41cc2dd-8fbf-4dc2-a5a6-99e6738952dfDisplay Name: Email: First Name: adminLast Name: Department: Title: Description: Account Disabled: falseAccount Unlocked At: 1970-01-01 00:00:00ZName: xuanID: 38cb2ab5-0969-4ace-9555-9909e331a174Display Name: Email: First Name: xuanLast Name: LiangDepartment: Title: Description: Account Disabled: falseAccount Unlocked At: 2017-05-04 01:44:24ZName: a001ID: 6b45403d-4654-4e0a-9145-91405d67aa3bDisplay Name: Email: com.cnFirst Name: a001Last Name: liDepartment: Title: Description: Account Disabled: falseAccount Unlocked At: 2017-04-24 10:09:33Z
如上面的文段,按不同的Name来区分不同的用户,最终可以把不同用户的信息分别存入mysql?
问题解答
回答1:f.readline()读到Name: xxxx 就表示进入下个用户信息
回答2:mysql 里设置 name 约束 unique, 然后一条条插入数据库就可以了
回答3:# coding: utf8from collections import defaultdictfile_name = ’1.txt’result = defaultdict(dict)with open(file_name) as f: user_name = ’’ for i in f:tmp = i.strip().split(’:’, 1) # 只切割一次if len(tmp) == 1: # 对应的键没有值, 用空字符补充 tmp.append(’’)key, value = tmpif i.startswith(’Name’): user_name = key continueif user_name: result[user_name][key] = valueprint result # 用户结果集合字典, 可以遍历这个插入数据库, 也能在运行中插入, 任君选择回答4:
用正则分割,再根据用户名分到一组
DATA = re.findall(r’(.*?ddZ)’, a, re.S)for i in DATA: print(i) print(’----------------------’)
相关文章:
1. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题2. MYSQL新建用户设置可以远程访问的问题3. java - mybatis怎么实现在数据库中有就修改,没有就添加4. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)5. angular.js - angularjs的自定义过滤器如何给文字加颜色?6. javascript - 用表单提交两个时间段请求后台返回对应数据时出现的一些问题!7. node.js - nodejs和前端JavaScript 字符串处理结果不一样是什么原因?8. linux - 为什么我在mysql的my.cnf下找不到bind-address?9. mysql - SQL操作时间的函数?10. 各位谁知道这个CSS时候哪里出错了???
![$fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题](http://www.haobala.com/attached/image/news/202205/093622cb60.png)