Python 用于根据长度 row/list 创建字符串的函数

Python function for creating a string based on length of row/list

我正在使用 Python 和 SQL Alchemy 来自动执行某些产品分类。本质上,我希望将任何带有项目的 csv 作为行并将其格式化为搜索字符串,以获取 SQL 查询的 case 语句。

我想在 python 中编写一个函数,它将测量一行(或列表)的长度并在每个单词之间插入文本并输出一个字符串,该字符串将输入 SQL 找到那些话。随附的屏幕截图是我在 excel 中的做法。我敢肯定,对于具有一定连接技能的人来说,这相当简单。

Script Output Example

在我看来,您可以从第一列中获取值并将其拆分到列表中以获得所需的结果。

例如:

input_items = [
   "Bootcut Yoga Pants",
   "Go-Go Boots",
   "Flower Print Mini Skirts",
]

for input_item in input_items:
    # Split the item in to a list of individual words
    items = input_item.split()
    # Turn the list of words in to a list of query clauses
    query_items = [f"item_name ilike '%{item}%'" for item in items]
    # Turn that in to a string, with the word "and" between each item
    query_line = " and ".join(query_items)
    # Construct the final query
    print(f"when {query_line} then '{input_item}'")

结果:

when item_name ilike '%Bootcut%' and item_name ilike '%Yoga%' and item_name ilike '%Pants%' then 'Bootcut Yoga Pants'     
when item_name ilike '%Go-Go%' and item_name ilike '%Boots%' then 'Go-Go Boots'
when item_name ilike '%Flower%' and item_name ilike '%Print%' and item_name ilike '%Mini%' and item_name ilike '%Skirts%' then 'Flower Print Mini Skirts'