如何在python中解析列表中的项
如何在python中解析列表中的项目 我需要从以下位置获取主机名:如何在python中解析列表中的项,python,parsing,arraylist,Python,Parsing,Arraylist,如何在python中解析列表中的项目 我需要从以下位置获取主机名: {'Key':'Name','Value':'HOSTNAME'} tag = [{'Key': 'Backup Initiator Rule', 'Value': 'Daily-6d-retention'}, {'Key': 'delete_On', 'Value': '2019-08-31'}, {'Key': 'Backup_Type', 'Value': 'Demo'},
{'Key':'Name','Value':'HOSTNAME'}
tag = [{'Key': 'Backup Initiator Rule', 'Value': 'Daily-6d-retention'},
{'Key': 'delete_On', 'Value': '2019-08-31'},
{'Key': 'Backup_Type', 'Value': 'Demo'},
{'Key': 'Name', 'Value': 'HOSTNAME'},
{'Key': 'Disaster_Recovery', 'Value': 'Full'}]
Regex
由于这是不可解析的json,我选择正则表达式:
import re
re.findall("{'Key': 'Name', 'Value': '(.*?)'}", tag)
这将返回找到的所有对象的列表:
['HOSTNAME']
EditOP更改了标记字符串,现在这可能不是最好的选择。Regex
for dict in tag:
if dict['Key'] == 'Name':
hostname = dict['Value']
break
由于这是不可解析的json,我选择正则表达式:
import re
re.findall("{'Key': 'Name', 'Value': '(.*?)'}", tag)
这将返回找到的所有对象的列表:
['HOSTNAME']
EditOP更改了标记字符串,现在这可能不是最好的选择。试试列表Comp:
for dict in tag:
if dict['Key'] == 'Name':
hostname = dict['Value']
break
tag = "[{'Key': 'Backup Initiator Rule', 'Value': 'Daily-6d-retention'}, {'Key': 'delete_On', 'Value': '2019-08-31'},{'Key': 'Backup_Type', 'Value': 'Demo'},{'Key': 'Name', 'Value': 'HOSTNAME'},{'Key': 'Disaster_Recovery', 'Value': 'Full'}]"
print([dic['Value'] for dic in eval(tag) if dic['Key']=='Name'])
结果:['HOSTNAME']尝试列表组件:
tag = "[{'Key': 'Backup Initiator Rule', 'Value': 'Daily-6d-retention'}, {'Key': 'delete_On', 'Value': '2019-08-31'},{'Key': 'Backup_Type', 'Value': 'Demo'},{'Key': 'Name', 'Value': 'HOSTNAME'},{'Key': 'Disaster_Recovery', 'Value': 'Full'}]"
print([dic['Value'] for dic in eval(tag) if dic['Key']=='Name'])
结果:['HOSTNAME']get
tag[“Tags”]
然后扫描列表,查找Key==Name的字典。首先对它使用ast.literal\u eval
,因为它似乎是一个字符串。这似乎是一个写入字符串的python字典。为什么?你能改变吗?但是这个字符串包含一个“datetime.datetime”调用<代码>'StartTime':datetime.datetime(2019,8,28,13,56,8269000,tzinfo=tzutc()),我希望这不是一个datetime对象的字符串表示的调用,变量标记的类型是类'list'gettag[“Tags”]
然后扫描列表以查找Key==Name的字典。首先对它使用ast.literal\u eval
,因为它似乎是一个字符串。这似乎是一个写入字符串的python字典。为什么?你能改变吗?但是这个字符串包含一个“datetime.datetime”调用<代码>'StartTime':datetime.datetime(2019,8,28,13,56,8269000,tzinfo=tzutc()),我希望这不是一个datetime对象的字符串表示的调用变量标记的类型是类“列表”,如果变量“标记”的类型是类“列表”
标记=[{'Key':'Backup Initiator Rule','Value':'Daily-6d-retention'},{'Key':'delete_On','Value':'2019-08-31'},{'Key':'Backup_Type','Value':'Demo'},{'Key':'Name','Value':'HOSTNAME'},{'Key':'灾难恢复','Value':'Full'}只需更改“eval(标签)”如果变量“tag”的类型是class'list'
tag=[{'Key':'Backup Initiator Rule','Value':'Daily-6d-retention'},{'Key':'delete_On','Value':'2019-08-31'},{'Key':'Backup_type','Value':'Demo'},{'Key':'Name','Value':'Value':'HOSTNAME':'HOSTNAME'},{'Key':'灾难恢复','Value':'Full'},只需更改即可“eval(tag)”来标记。我指的是列表
我指的是列表