python - 使用正则表达式解析数据库表名
问题描述
我有包含数据库表名的数据。
用这样的代码:
for l,col in enumerate(data):
#print(data[l][1])
a = data[l][1]
parse = extract_tables(a)
print(parse)
数据是这样的:
['public.actor']
['public.film']
['film']
['film', 'rental', 'inventory']
['inventory i', 'customer c', 'film f', 'rental r']
['customer as c', 'rental as r']
我希望它是这样的:
['actor']
['film']
['film']
['film', 'rental', 'inventory']
['inventory', 'customer', 'film', 'rental']
['customer', 'rental']
我想删除“public”、“as”以及“c”、“f”和“r”等别名,这样我只能从数据中获取原始名称表。(如演员、电影、出租)。我在 python 中工作。请帮我。谢谢你
解决方案
你知道一组预期的可能的数据库表名吗?似乎您将或能够从数据库中查询它。如果是这样:
database_tables = ['actor', 'film', 'rental', 'inventory', 'customer']
results = []
for db_list in data:
db_list = [db for db in database_tables if db in ''.join(db_list)]
results.append(db_list)
如果您不这样做,那么您的解决方案只会与要清理的传入数据的可预测性一样好。有了这套你有:
result = []
for db_list in data:
db_list = [db.split('public.')[0] for db in db_list]
db_list = [db.split(' ')[0] for db in db_list]
result.append(db_list)
推荐阅读
- angular - 如果 index.html 被缓存,如何使用 Angular 2 代码在任何浏览器中强制从服务器加载 index.html
- google-sheets - 如何查询单元格引用,引用单元格中的数据部分匹配?
- python - 在 Python 中同时使用 Selenium webdriver 和 Requests
- android - 如何调用 popbackstack 而不是删除 backstack 上的先前条目以便我可以再次使用它?
- django-rest-framework - UserRegistrationAPIView 应该包含一个 `querylist` 属性,或者覆盖 `get_querylist()` 方法
- c# - UWP 无法在两个应用程序之间创建 localhost 连接
- java - 重定向使用和 POST 参数
- sql - 如何用 SQL 计算行之间的差异?
- excel - 在电子表格中配置一系列单元格以自动链接到电子邮件或网站
- swift - Swift以编程方式创建uiimageview全宽屏幕保持高度比