如何将csv文件中的值用于新输入?

问题描述

image of the csv file

每当用户输入新项目(例如,奶酪)时,product_id将为8,batch_no将增加1。如何编写代码来做到这一点?如果该商品不在列表中,则商品ID将是最后一个商品ID +1,并且batch_no将为1。

我写了这样的东西,但是不起作用:

导入csv 打开(“ database.csv”,“ a +”,newline =“”)作为csv_file: field_names = [“ product_id”,“ product_name”,“ cost_price”,“ sale_price”,“ stock”,“ batch_no”,“ supply_date”,“ expiry_date”]

csv_reader = csv.DictReader(csv_file,delimiter =",")
csv_writer = csv.DictWriter(csv_file,fieldnames=field_names)
  
database ={}

database["product_name"] = input("Enter product name: ")
database["cost_price"] = float(input("Enter unit cost price of product: "))
database["sale_price"] = float(input("Enter unit selling price of product: "))    
database["stock"] = int(input("Enter the number of stock: "))
database["supply_date"] = input("Enter date in YYYY-MM-DD format: ")
database["expiry_date"] = input("Enter date in YYYY-MM-DD format: ")

highest_id = 0

for row in csv_reader:
    if row["product_id"] > highest_id:
        highest_id = row["product_id"]
    if product_name in database:
        database["product_id"] = row["product_id"]
    else:
        database["product_id"] = highest_id + 1
    if product_name not in database:
        database["batch_no"] = 1
    else:
       database["batch_no"] += 1  

csv_writer.writerow(database)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)