按y筛选项目

2024-10-03 02:43:20 发布

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

你知道吗 我正在尝试筛选一个从XML购买的产品的列表,这些产品是在哪一年生产的。问题是日期的格式是:年/月/日。我用datetime库解决了这个问题,但现在我不能用年份来过滤购买的内容。 你知道吗

def purchasesPerYear(year):
listPurchases = treeDoc.xpath("//purchase")
for purchases in listPurchases:
    nrPurchases = purchases.xpath("count(//purchase)")
    date = purchases.xpath("//purchase/@date_of_purchase")[int(nrPurchases)-1]
    dateParsed = datetime.strptime(date, "%Y/%m/%d")
    if year == dataParsed.year:
        for n in range(int(nrPurchases)):
            purchaseid = purchases.xpath("@puid")
        return purchaseid
    else:
        purchaseid = purchadses.xpath("//purchase/@puid")
        return purchaseid

打印(“购买:”,Compraprano(2017))

print("data: ", dataParsed)

你知道吗 在这个代码中,我要么得到第一次购买,如果这一年存在于任何购买中,要么得到所有购买,如果这一年不存在。然而,我第一次购买是在2016年,其他的都是在2017年。基本上,如果我输入2016年或2017年,我得到的只是第一次购买,而不是输入年份的每一次购买。你知道吗

<compra coid="CO01" id="U01" data_de_compra="2016/10/15" estado="entregue">
            <produto iid="I01" quantidade="1">
                <transportadora nome="CTT"/>
            </produto>
        </compra>
        <compra coid="CO02" id="U01" data_de_compra="2017/10/15" estado="emExpedicao">
            <produto iid="I03" quantidade="1">
                <transportadora nome="SEUR"/>
            </produto>
        </compra>
        <compra coid="CO03" id="U03" data_de_compra="2017/10/20" estado="entregue">
            <produto iid="I01" quantidade="1" avaliacao="4">
                <transportadora nome="MRW"/>
            </produto>
        </compra>
        <compra coid="CO04" id="U03" data_de_compra="2017/10/20" estado="entregue">
            <produto iid="I02" quantidade="1" avaliacao="5">
                <transportadora nome="UPS"/>
            </produto>
        </compra>

Tags: iddatadepurchasexpathnomecoidpurchases
1条回答
网友
1楼 · 发布于 2024-10-03 02:43:20

我完全改变了代码的形成方式:

listaCompras = treeDoc.xpath("//compra")
for elem in listaCompras:
    for n in range(4):
        data = elem.xpath("//compra/@data_de_compra")
        coid = elem.xpath("//compra/@coid")
compra = [0, 0, 0, 0]        
for g in range(4):
    dataParsed = [g]
    dataParsed = datetime.strptime(data[g], "%Y/%m/%d")
    compra[g] = (dataParsed.year, coid[g])
print(compra)

def compraPorAno(ano):
    for (a, b) in compra:
        if ano == a:
            print("ID: ", b)

print(compraPorAno(2017))

如果给定购买的年份,则此代码将给出购买ID。你知道吗

相关问题 更多 >