python中获取如下模式字符串的方法
Posted
技术标签:
【中文标题】python中获取如下模式字符串的方法【英文标题】:Method in python to obtain the following pattern string 【发布时间】:2016-01-06 07:42:09 【问题描述】:我正在使用 tylertreat/BigQuery-Python
从 BigQuery 获取表列表,下面的代码在这里,
class get_Tables:
def GET(self,r):
web.header('Access-Control-Allow-Origin', '*')
web.header('Access-Control-Allow-Credentials', 'true')
tables = []
datasetID = web.input().dataSetID
client = get_client(project_id, service_account=service_account,
private_key_file=key, readonly=True)
result = client._get_all_tables(datasetID,cache=False)
tablesWithDetails = result["tables"]
for inditable in tablesWithDetails:
tables.append(inditable["id"])
print(json.dumps(tables))
return json.dumps(tables)
上面的方法返回一个像这样的JSON,
["thematic-scope-112013:Demo.Airport_Traffic", "thematic-scope-112013:Demo.Alcohol_Consumption", "thematic-scope-112013:Demo.Flight_paths", "thematic-scope-112013:Demo.GDP_Country_Wise", "thematic-scope-112013:Demo.like_data", "thematic-scope-112013:Demo.medicare_cost"]
但我只想要没有项目和数据集名称,
以下列格式获取的模式或正则表达式是什么,
["Airport_Traffic", "Alcohol_Consumption", "Flight_paths", “GDP_Country_Wise”、“like_data”、“medicare_cost”]
【问题讨论】:
【参考方案1】:不需要正则表达式,只需一个拆分方法就足够了。即,根据点拆分每个列表项,然后从该拆分列表中获取最后一个元素。
[i.split('.')[-1] for i in data]
例子:
>>> data = ["thematic-scope-112013:Demo.Airport_Traffic", "thematic-scope-112013:Demo.Alcohol_Consumption", "thematic-scope-112013:Demo.Flight_paths", "thematic-scope-112013:Demo.GDP_Country_Wise", "thematic-scope-112013:Demo.like_data", "thematic-scope-112013:Demo.medicare_cost"]
>>> [i.split('.')[-1] for i in data]
['Airport_Traffic', 'Alcohol_Consumption', 'Flight_paths', 'GDP_Country_Wise', 'like_data', 'medicare_cost']
【讨论】:
或.rsplit(".",1)[1]
[i.split('.')[-1] for i in tables] newtables.append(i) ,这不会返回正确的数据,抱歉是 python 的新手
如何获取输入数据?它不是一个 json,它是一个列表。 JUts 将结果分配回tables = [i.split('.')[-1] for i in tables]
之类的表以上是关于python中获取如下模式字符串的方法的主要内容,如果未能解决你的问题,请参考以下文章