在字典列表列表中用空格替换下划线
Replace underscore with whitespace in a list of list of dictionaries
我正在尝试使用以下代码将字典列表中的每个下划线“_”替换为白色space:
d=[[{"30": "PRIORITY"}, {"2022:02:25-12:06:09": "TIMESTAMP"}, {"tester": "HOSTNAME"}, {"named": "APPNAME"}, {"3456": "PID"}, {"resolver_priming_query_complete": "ACTION"}]]
f=''
def Regler(d):
for i in d:
for j in i:
for k in j.keys():
if('_' in k):
k=k.replace('_', ' ')
print(d)
Regler(d)
我想要的输出是相同的输入,但只是用 space 替换下划线,我不确定我在代码中遗漏了什么
最好只写一个新版本的字典,而不是修改现有的字典
d=[[{"30": "PRIORITY"}, {"2022:02:25-12:06:09": "TIMESTAMP"}, {"tester": "HOSTNAME"}, {"named": "APPNAME"}, {"3456": "PID"}, {"resolver_priming_query_complete": "ACTION"}]]
f=''
def Regler(d):
modified_input = []
for i in d:
for j in i:
temp_dict = {}
for k, value in j.items():
if('_' in k):
k=k.replace('_', ' ')
temp_dict[k] = value
modified_input.append(temp_dict)
return [modified_input]
print(Regler(d))
列表推导式和字典推导式旨在构建列表和字典。
我们可以为列表列表的每个子列表中的每个字典构建一个新字典(没有下划线):
def regler(lst_of_lst):
return [
[
# Build dictionary with out underscores in key
{k.replace('_', ' '): v for k, v in d.items()}
for d in sublist
]
for sublist in lst_of_lst
]
用样例测试:
d = [[{"30": "PRIORITY"}, {"2022:02:25-12:06:09": "TIMESTAMP"},
{"tester": "HOSTNAME"}, {"named": "APPNAME"}, {"3456": "PID"},
{"resolver_priming_query_complete": "ACTION"}]]
print(regler(d))
输出:
[[{'30': 'PRIORITY'},
{'2022:02:25-12:06:09': 'TIMESTAMP'},
{'tester': 'HOSTNAME'},
{'named': 'APPNAME'},
{'3456': 'PID'},
{'resolver priming query complete': 'ACTION'}]]
我正在尝试使用以下代码将字典列表中的每个下划线“_”替换为白色space:
d=[[{"30": "PRIORITY"}, {"2022:02:25-12:06:09": "TIMESTAMP"}, {"tester": "HOSTNAME"}, {"named": "APPNAME"}, {"3456": "PID"}, {"resolver_priming_query_complete": "ACTION"}]]
f=''
def Regler(d):
for i in d:
for j in i:
for k in j.keys():
if('_' in k):
k=k.replace('_', ' ')
print(d)
Regler(d)
我想要的输出是相同的输入,但只是用 space 替换下划线,我不确定我在代码中遗漏了什么
最好只写一个新版本的字典,而不是修改现有的字典
d=[[{"30": "PRIORITY"}, {"2022:02:25-12:06:09": "TIMESTAMP"}, {"tester": "HOSTNAME"}, {"named": "APPNAME"}, {"3456": "PID"}, {"resolver_priming_query_complete": "ACTION"}]]
f=''
def Regler(d):
modified_input = []
for i in d:
for j in i:
temp_dict = {}
for k, value in j.items():
if('_' in k):
k=k.replace('_', ' ')
temp_dict[k] = value
modified_input.append(temp_dict)
return [modified_input]
print(Regler(d))
列表推导式和字典推导式旨在构建列表和字典。
我们可以为列表列表的每个子列表中的每个字典构建一个新字典(没有下划线):
def regler(lst_of_lst):
return [
[
# Build dictionary with out underscores in key
{k.replace('_', ' '): v for k, v in d.items()}
for d in sublist
]
for sublist in lst_of_lst
]
用样例测试:
d = [[{"30": "PRIORITY"}, {"2022:02:25-12:06:09": "TIMESTAMP"},
{"tester": "HOSTNAME"}, {"named": "APPNAME"}, {"3456": "PID"},
{"resolver_priming_query_complete": "ACTION"}]]
print(regler(d))
输出:
[[{'30': 'PRIORITY'},
{'2022:02:25-12:06:09': 'TIMESTAMP'},
{'tester': 'HOSTNAME'},
{'named': 'APPNAME'},
{'3456': 'PID'},
{'resolver priming query complete': 'ACTION'}]]