首页 > 解决方案 > 如何在单行代码中删除 python 3 中类列表中的 [ , ] 和单引号?

问题描述

我有一个列表输入,我想要 O/p(带有单行代码)我已经尝试了下面的代码,但我没有得到想要的输出。在这个我想删除[,]和单引号,这里bid_data类型是<class 'list'> 输入 ['Quantity Required', ' 1']
O/ p 1

码我试过

   def scrap_bid_data():
    page_no = 1
    while page_no < 2:
        print('Hold on creating URL to fetch data...')
        url = 'https://bidplus.gem.gov.in/bidlists?bidlists&page_no=' + str(page_no)
        print('URL created: ' + url)
        scraped_data = requests.get(url, verify=False)
        soup_data = bs(scraped_data.text, 'lxml')
        extracted_data = soup_data.find('div', {'id': 'pagi_content'})
        if len(extracted_data) == 0:
            break
        else:
            for idx in range(len(extracted_data)):
                if (idx % 2 == 1):
                    bid_data = extracted_data.contents[idx].text.strip().split('\n')

                    bidno = bid_data[0].split(":")[-1]
                    items = bid_data[5].split(":")[-1]
                    qnty = int(bid_data[6][1].strip())
                    dept = (bid_data[10] + bid_data[12].strip()).split(":")[-1]
                    edate = bid_data[17].split("End Date:")[-1]
                    f.writerow([bidno, items, qnty.split(":"), dept, edate])

            page_no=page_no+1
scrap_bid_data()

['BID NO: GEM/2020/B/756203', 'View Corrigendum', '', '', '', 'Item(s): Desktop Computers', 'Quantity Required: 35', '', '', '', 'Department Name And Address:', '', ' Ministry Of Electronics And Information Technology Na Hq, New Delhi Unique Identification Authority Of India (uidai) ', '', '', '', 'Start Date: 19-08-2020 05:33 PM', 'End Date: 10-09-2020 04:00 PM']


但是通过这个我得到['1']
了python编码的新帮助。

标签: pythonpython-3.xlistreplacesplit

解决方案


根据您对bid_data包含内容的更新:

做:

int(bid_data[6].split(':')[1].strip()) # returns an integer

解释:

Python 字符串方法strip()从字符串的两端删除多余的空格(不带参数)

原文如下:

以下是基于使用您提供的输入['Quantity Required', ' 1'], 来获得 1 的输出

如果输入是['Quantity Required', ' 1']列表:

>>> my_input = ['Quantity Required', ' 1']
>>> int(my_input[1].strip())
>>> 1 # is an integer

您可以在哪里替换my_input为文字列表。

如果输入是字符串:

>>> string = "['Quantity Required', ' 1']"
>>> int(string.split(', ')[1].strip("'] "))
>>> 1 # is an integer

推荐阅读