我正在尝试将字典列表转换为简单的逗号分隔字符串,并删除重复的键。
这是我的字典
"Message": [
{
"table_name": "sec_sp",
"column_name": "field_1"
},
{
"table_name": "sec_sp",
"column_name": "field_2"
},
{
"table_name": "sec_si",
"column_name": "field_3"
},
{
"table_name": "sec_si",
"column_name": "field_4"
},
{
"table_name": "sec_sp",
"column_name": "field_5"
},
{
"table_name": "sec_sc",
"column_name": "field_6"
},
{
"table_name": "sec_sc",
"column_name": "field_7"
}
]
我想将其转换为以下字符串。
sp_list = "field_1,field_2,field_5"
si_list = "field_3,field_4"
sc_list = "field_6,field_7"
我尝试使用下面的代码将键和值分开,但无法删除重复项。
for key, value in Message.items():
由于数据格式是列表而不是直接的字典,因此您需要迭代列表,根据 table_name 将项目收集到单独的列表中,然后将这些列表连接到字符串中。
message = [
{"table_name": "sec_sp", "column_name": "field_1"},
{"table_name": "sec_sp", "column_name": "field_2"},
{"table_name": "sec_si", "column_name": "field_3"},
{"table_name": "sec_si", "column_name": "field_4"},
{"table_name": "sec_sp", "column_name": "field_5"},
{"table_name": "sec_sc", "column_name": "field_6"},
{"table_name": "sec_sc", "column_name": "field_7"}
]
# Using a dictionary to collect column names for each table
columns_by_table = {}
# Iterate over each entry in the message
for entry in message:
table = entry["table_name"]
column = entry["column_name"]
if table not in columns_by_table:
columns_by_table[table] = []
# Add the column name to the corresponding table's list
columns_by_table[table].append(column)
sp_list = ",".join(columns_by_table.get("sec_sp", []))
si_list = ",".join(columns_by_table.get("sec_si", []))
sc_list = ",".join(columns_by_table.get("sec_sc", []))
print(f"sp_list = \"{sp_list}\"")
print(f"si_list = \"{si_list}\"")
print(f"sc_list = \"{sc_list}\"")
希望这对你有一点帮助。