我需要添加18k的产品变化到大约5k的可变产品,少于20分钟。现在我的剧本是这样的:
product__batch_create_variations = []
product__batch_update_variations = []
###VARIABLES###
d_variables = pandas.read_csv("toimport3.csv")
d_variables['C'] = np.arange(len(d_variables))
d_variables.reset_index()
d_variables = d_variables.to_json(orient ='index')
variables_loaded = json.loads(d_variables)
###VARIATIONS###
d_variations = pandas.read_csv("toimport_variations.csv")
d_variations['C'] = np.arange(len(d_variations))
d_variations.head(10)
d_variations.reset_index()
d_variations = d_variations.to_json(orient ='index')
v_loaded = json.loads(d_variations)
def slugify(text):
text = unidecode.unidecode(text).lower()
return re.sub(r'[\W_]+', '-', text)
for variable_iterator in variables_loaded:
variable_sku = str(variables_loaded[variable_iterator]["1"])
brands_array = str(variables_loaded[variable_iterator]["34"]).split(",")
cats = str(variables_loaded[variable_iterator]["33"]).split(",")
short_desc = []
images = []
desc = []
print("start for: " + variable_sku)
for v_iterator in v_loaded:
# try:
# sku = str(variables_loaded[variable_iterator]["17"])
# productlist_variable=wcapi.get("products", params={'sku':variable_sku}).json()
# productid=productlist_variable[0].get("id")
# productlist=wcapi.get('products'+'/'+str(productid)+"/"+"variations", params={'sku':sku}).json()
# short_desc_ = productlist[0].get("short_description")
# images_ = productlist[0].get("images")
# desc_ = productlist[0].get("description")
# print(sku)
# except:
# short_desc_ = []
# images_ = []
# desc_ = str(v_loaded[v_iterator]["10"]).replace("None","")
if str(variable_sku) == str(v_loaded[v_iterator]["17"]):
product_variation_data = {
"name": str(v_loaded[v_iterator]["2"]),
'sku': str(v_loaded[v_iterator]["saku"]),
"regular_price": str(v_loaded[v_iterator]["14"]).replace(',','.'),
'sale_price': str(v_loaded[v_iterator]["15"]).replace(',','.'),
"stock_quantity": v_loaded[v_iterator]["8"],
'weight': str(v_loaded[v_iterator]["11"]).replace('.',','),
'dimensions': {
'length': str(v_loaded[v_iterator]["12"]).replace('.',','),
'width': str(v_loaded[v_iterator]["12"]).replace('.',','),
'height': str(v_loaded[v_iterator]["13"]).replace('.',',')
},
'short_description': short_desc,
'images': images,
'description': desc,
'attributes': [
{'id': 9, 'name': 'Brändi', 'position': 0, 'visible': True, 'variation': False, 'options': [str(v_loaded[v_iterator]["26"]).replace("None","NULL")]},
{'id': 8, 'name': 'Väri', 'position': 1, 'visible': True, 'variation': True, 'option':str(v_loaded[v_iterator]["19"]).replace("None","")},
{'id': 6, 'name': 'Koko', 'position': 2, 'visible': True, 'variation': True, 'option':str(v_loaded[v_iterator]["28"]).replace("None","")},
],
"meta_data": [
{
"key": "_pointss",
"value": v_loaded[v_iterator]["31"]
},
{
"key": "_transitory_sku",
"value": v_loaded[v_iterator]["saku"]
},
{
"key": "_text_field",
"value": v_loaded[v_iterator]["3"]
}
],
}
product__batch_create_variations.append(product_variation_data)
product__batch_data = {
"create": product__batch_create_variations,
"update": product__batch_update_variations
}
productlist_variable=wcapi.get("products", params={'sku':variable_sku}).json()
productid_variable=productlist_variable[0].get("id")
response = wcapi.post('products/'+str(productid_variable)+"/variations/batch", product__batch_data)
print(response) 因此,它读取带有变量的csv +变量的csv,然后在非常长的循环中一次将变化添加到一个变量积中。我没有48小时的这种方法,我需要我的产品变化以更快的速度增加,也许在一个大的批。
我怎么能这么做?请帮帮我。
v2.0:下面是csv的一些例子。将此粘贴到您的csv文件中,逗号是分隔符:( saku,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,328105000442/Black/Green/Gum,variation,328105000442/990_10.5,"TM-2 Jones 21,Black/Green/Gum",1,7320,taxable,1,0.0000,0,0,0.01,0.0000,0.0000,449,381.65,“32,Lumilautakeng t”,328105000442,V ri,Neutraali,0,1,Br ndi,32,0,1,32,Koko,10.5,0,1,1,19,“7315,759,7321”,"7318,7319,7320",TM-2 Jones 21,Black/Green/Gum,328105000442/Black/Green/Gum,变异,328105000442/990_11,"TM-2 Jones 21,Black/Green/Gum",1,7320,可见,taxable,1,0.0000,0,0,0.01,0.0000,0.0000,449,381.65,“32,Lumilautakeng t”,328105000442,V ri,Neutraali,0,1,1,Br ndi,32,02,0,1,1,32,Koko,11,0,1,059,7321,"7318,7319,7320",TM-2 Jones 21,Black/Green/Gum,328105000442/Black/Green/Gum,变异,328105000442/990_12、"TM-2 Jones 21、Black/Green/Gum“、1 7320、taxable,1,0.0000,0,0,0.01,0.0000,0.0000,449,341.24,”32、Lumilautakeng t“、328105000442、V ri、Neutraali、0、1、Br ndi、32、0、1、32、32、科科,12,0,1,0,19,”7315,759,7321“,"7318,7319,7320",TM-2 Jones 21,Black/Green/Gum,328105000442/Black/Green/Gum,变异,32810000442/990_6,"TM-2 Jones 21,Black/Green/Gum",1,7320可见,taxable,1,0.0000,0,0,0.01,0.0000,0.0000,449,381.65,“32,Lumilautakeng t”,328105000442,V ri,Neutraali,0,1,Br ndi,32,0,1,32,Koko,6,0,1,19,“7315,759,7321”,"7318,7319,7320",TM-2 Jones 21,Black/Green/Gum,328105000442/Black/Green/Gum,变异,328105000442/990_8.5,"TM-2 Jones 21,Black/Green/Gum",1,7320,可见,taxable,1,1.2000,0,0,0.01,0.0000,0.0000,449,341.24,“32,Lumilautakeng t“、328105000442、V ri、Musta、0、1、Br ndi、32、0、1、32、taxable,1,1.2000,0,0,0.01,0.0000,0.0000,449,341.24,、8.5、0、1、18、”7315 759 7321“、”7318 7319 7320“、TM-2 Jones 21、Black/Green/Gum、328105000442/Black/Green/Gum、变异、328105000442/990_9、"TM-2 Jones 21、Black/Green/Gum”、1 7320、visible、taxable,1,1.2000,0,0,0.01,0.0000,0.0000,449,341.24,“32、Lumilautakeng t”、328105442、V ri、Musta、0、1、Br ndi、32、0、1、32、32、科科9,0,1,0,18,“7315,759,7321”,"7318,7319,7320",TM-2 Jones 21,Black/Green/Gum,328105000449/Black/Green/Gum,变体,328105000449/990_10,"Jones MTB 21,Black/Green/Gum",1,7320,有形,taxable,1,0.0000,0,0,0.01,0.0000,0.0000,569,443.82,“32,Lumilautakeng t”,328105000449,V ri,Neutraali,0,1,Br ndi,32,01,0,1,0,0,1,32,Koko,10,0,1,0,19,“7315,759,7321”,“18,7319,7320”,Jones MTB 21,Black/Green/Gum,328105000449/Black/Green/Gum,variation,328105000449/990_10.5,"Jones MTB 21,Black/Green/Gum",1,7320,taxable,1,0.0000,0,0,0.01,0.0000,0.0000,569,443.82,“32,Lumilautakeng t”,328105000449,V ri,Neutraali,0,1,Br ndi,32,0-1,32,32,Koko,10.5,0,1,19,“7315,759,7321”,"7318,7319,7320",Jones MTB 21,Black/Green/Gum,32810000449/Black/Green/Gum,328105000449/990_11,"Jones MTB 21,黑/绿/胶,1,7320,可见,taxable,1,0.0000,0,0,0.01,0.0000,0.0000,569,443.82,“32,Lumilautakeng t”,328105000449,V ri,Neutraali,0,1,Br ndi,32,0,1,32,32,Koko,11,0,1,19,“7315,759,7321”,"7318,7319,7320",琼斯MTB 21,Black/Green/Gum,328105000449/Black/Green/Gum,变异,328105000449/990_8.5,"Jones MTB 21,Black/Green/Gum",1,7320,可见,taxable,1,0.0000,0,0,0.01,0.0000,0.0000,569,443.82,“32,Lumilautakeng t”,328105000449,V ri,Neutraali,0,1,Br ndi,32,0,1,32,Koko,8.5,0,1,19,“7315,759,7321”,"7318,7319,7320",Jones MTB 21,Black/Green/Gum,328105000449/Black/Green/Gum,变异,328105000449/990_9,"Jones MTB 21,Black/Green/Gum",1,7320,有形,taxable,1,1.2000,0,0,0.01,0.0000,0.0000,569,443.82,“32,Lumilautakeng t”,328105000449,V,Musta,0,1,Br,I,32
(变量) ,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34 8,变量,328105000442,"TM-2 Jones 21,Black/Green/Gum",1,7320,可见,taxable,1,0.0000,0,0,0.01,0.0000,0.0000,449,341.24,“32,Lumilautakeng t”,ndi ,1,1,Br ndi,32,1,1,1,32,32,Koko,1,1,0,19,“7315,759,7321”,“7318,7319”14,变量,328105000449,"Jones MTB 21,Black/Green/Gum",1,7320,有形,应税,1,0.0000,0,0,0.01,0.0000,0.0000,569,443.82,“三十二,Lumilautakeng t”,V ri,,1,1,Br ndi,32,1,1,32,32,Koko,1,1,0,19,“7315,759,7321”,"7318,7319,7320“
发布于 2022-09-15 15:43:04
代码中最长的调用可能是:
productlist_variable=wcapi.get("products", params={'sku':variable_sku}).json()它只依赖于variable_sku,它不会在v_loaded上的迭代中发生变化。因此,您可以在循环之前执行该请求,而不是在每次迭代时执行。
同样适用于
productlist=wcapi.get('products'+'/'+str(productid)+"/"+"variations", params={'sku':sku}).json()通过避免重复这个查找:variables_loaded[variable_iterator],您还可以获得轻微的性能提升。相反,将结果放在一边,并在任何需要的地方使用它:
current_variables = variables_loaded[variable_iterator]
variable_sku = str(current_variables["1"])
brands_array = str(current_variables["34"]).split(",")
# etc...https://stackoverflow.com/questions/73733721
复制相似问题