我正在用Python为销售订单准备CSV文件有效负载创建者

2024-05-02 16:46:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在阅读sales order.csv文件,下面是我的示例csv

SNo,Customer_id,Itemid,Product,Quanity,Price']
1 , ABC123 , 10 , X1 , 1001 , 10001
1 , ABC123 , 20 , X2 , 1002 , 10002
2 , CBC321 , 10 , X5 , 1005 , 10005
2 , CBC321 , 20 , X6 , 1006 , 10006

在上面的示例中,SNo、Customer是标题,Itemid、Product、Quantity、Price是子项。我需要以下面的格式生成有效负载

<SNo>1 </SNo<Customer_idABC123 </Customer_id>
    <Itemid10 </Itemid>
    <ProductX1 </Product>
    <Quanity1001 </Quanity>
    <Price']10001</Price']>
    <Itemid20 </Itemid>
    <ProductX2 </Product>
    <Quanity1002 </Quanity>
    <Price']10002</Price']>

<SNo>2 </SNo<Customer_idCBc321</Customer_id>
    <Itemid10 </Itemid>
    <ProductX5 </Product>
    <Quanity1005 </Quanity>
    <Price']10005</Price']>
    <Itemid20 </Itemid>
    <ProductX6 </Product>
    <Quanity1006 </Quanity>
    <Price']10006</Price']>

如何以上述格式生成有效负载


Tags: csvid示例格式customerproductpricesales
2条回答

请使用下面的代码

with open("input.csv","r") as f:
    head=[i.strip() for i in f.readline().split(",")]
    line=f.readline()
    while line:
        print("".join(["<%s>%s</%s>"%(i,a.strip(),i) for (i,a) in zip(head,line.split(","))]))
        line=f.readline()

您可以简单地使用Jinja模板字符串并相应地插入值。 当然不是最漂亮的解决方案…但只需几分钟即可完成

相关问题 更多 >