关于python如何筛选爬取到的信息

我在gateio爬取了#查询支持的所有交易对,返回了上千条信息

返回的数据格式是:
{'id': 'ALICE3L_USDT', 'base': 'ALICE3L', 'quote': 'USDT', 'fee': '0.2', 'min_quote_amount': '1', 'amount_precision': 3, 'precision': 5, 'trade_status': 'tradable', 'sell_start': 0, 'buy_start': 0} 后面的几千条数据省略

#需求1:我只要包含‘quote':'USDT'且 'trade_status': 'tradable'的数据,该如何使用PYTHON快速筛选出?并且可以导出到excel文件
#需求2:进行第二次数据筛选,我只需要提取交易对的名称,即例如ALICE3L_USDT、BTC_USDT等等

#需求3:
相关代码如下:
query_param = 'currency_pair=BTC_USDT&interval=1h&limit=30'
我要将BTC_USDT这个请求参数改成变量,自动填入#需求2中获取的交易对名称,并且每填入一个名称跑一次代码

给个 pandas 处理需求1的例子 ,供参考.。 需求2 也可以通过 query 的方式。 挺方便的。


import pandas as pd
data = [{'id': 'ALICE3L_USDT', 'base': 'ALICE3L', 'quote': 'USDT', 'fee': '0.2', 'min_quote_amount': '1', 'amount_precision': 3, 'precision': 5, 'trade_status': 'tradable', 'sell_start': 0, 'buy_start': 0},
{'id': 'ALICE3L_USDT', 'base': 'ALICE3L', 'quote': 'USDT', 'fee': '0.2', 'min_quote_amount': '1', 'amount_precision': 13, 'precision': 15, 'trade_status': 'tradable', 'sell_start': 10, 'buy_start': 10},
{'id': 'ALICE3L_USDT', 'base': 'ALICE3L', 'quote': 'USDT', 'fee': '0.2', 'min_quote_amount': '1', 'amount_precision': 13, 'precision': 15, 'trade_status': 'tradable', 'sell_start': 10, 'buy_start': 10},
{'id': 'ALICE3L_USDT', 'base': 'ALICE3L', 'quote': 'USDT', 'fee': '0.2', 'min_quote_amount': '1', 'amount_precision': 13, 'precision': 15, 'trade_status': 'tradable2', 'sell_start': 10, 'buy_start': 10},
{'id': 'ALICE3L_USDT', 'base': 'ALICE3L', 'quote': 'USDT2', 'fee': '0.2', 'min_quote_amount': '1', 'amount_precision': 13, 'precision': 15, 'trade_status': 'tradable', 'sell_start': 10, 'buy_start': 10},
{'id': 'ALICE3L_USDT', 'base': 'ALICE3L', 'quote': 'USDT', 'fee': '0.2', 'min_quote_amount': '1', 'amount_precision': 13, 'precision': 15, 'trade_status': 'tradable', 'sell_start': 10, 'buy_start': 10}

 ]

df = pd.DataFrame(data)

print(df)

df1= df.query("quote=='USDT' and trade_status=='tradable' ")
print(df1)
df1.to_excel("df1.xlsx")

img

通过for循环判断里面是否包含‘quote':'USDT' ,如果满足条件做进一步处理
例如:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author: Roc-xb
"""
if __name__ == '__main__':
    data = [{'id': 'ALICE3L_USDT', 'base': 'ALICE3L', 'quote': 'USDT', 'fee': '0.2', 'min_quote_amount': '1',
             'amount_precision': 3, 'precision': 5, 'trade_status': 'tradable', 'sell_start': 0, 'buy_start': 0}]
    res = []
    for item in data:
        # 这里筛选符合条件的结果存入res列表中
        if item['quote'] == 'USDT' and item['trade_status'] == 'tradable':
            res.append(item)

用pandas库保存到Excel

大概是下面的,你需求不是很明白。

# 1.data1中每一条数据就是一个字典
USED = []   # 有用的数据存在此

data1 = [{'id': 'ALICE3L_USDT', 'base': 'ALICE3L', 'quote': 'USDT', 'fee': '0.2', 'min_quote_amount': '1', 'amount_precision': 3, 'precision': 5, 'trade_status': 'tradable', 'sell_start': 0, 'buy_start': 0}]
for i in data1:
    if i.get('quote', '') == 'USDT' and i.get('trade_status', '') == 'tradable':
        USED.append(i)
# 2.USED中第二次筛选
# 2.把你认为交易对的名称写在一个列表中
USED2 = []
YES = ['ALICE3L_USDT', 'BTC_USDT']
for i in USED:
    for key in YES:
        if i['id'] == key:
            USED2.append(i)

# 3.
for i in USED2:
    var = i.get(你要的项, '')
    query_param = 'currency_pair=' + var + '&interval=1h&limit=30'


用eval函数将你获取的字符串转化成字典,然后你就可以用Excel操作库(xlwt,openpyxl)来把你要的信息写进去了

你可以了解下python的数据分析和数据处理!了解后,你会发现新大陆