• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

python requests.response返回的是表格二进制数据流,对表格的处理方法和应用

武飞扬头像
难以怀瑾
帮助1

前言:在工作中需要调用一些接口对数据进行处理,有一些就是表格的下载,返回的不是 json数据,而是二进制数据流如何进行处理呢
  • 接收二进制数据使用 response.content
import requests
response = requests.post('your_url', headers=headers,json=json_data, stream=True)
# response.content 接收数据
  • 解析二进制数据(表格) 转换成 DataFrame格式
import pandas as pd
import io
with io.BytesIO(response.content) as fh:
   df = pd.io.excel.read_excel(fh, 0)  # 0这个参数是指读取该excel哪个sheet 索引0开始计数
 #  print(type(df)) # <class 'pandas.core.frame.DataFrame'>
  • 筛选所需要的行列(假定有一列为“排放标准”对其进行筛选)

      `loc`按标签值(列名和行索引取值)访问
      `~`代表取反
      `isin`代表这列数据需要在条件中
    
 condition = ["国六", "新能源"]  # 筛选条件一定要写成列表不然生效
 a = df.loc[~df["排放标准"].isin(condition)]  # 筛选不是国六、新能源的车 
 ness_data = a["车牌号"] #取出筛选后的数据
 ness_data_list = ness_data.values.tolist() # 转成pytho中的list类型就可以进行处理了

取出来a(DataFrame)的数据如下图
学新通

  • 完整代码如下
import requests
import pandas as pd
import io
headers = {
 'Connection': 'keep-alive',
 "xxx":xxx
}
json_data = {"greenTag": xxx, "rc": xxx}
response = requests.post('your_url', headers=headers,json=json_data, stream=True)
# response.content 接收数据

with io.BytesIO(response.content) as fh:
   df = pd.io.excel.read_excel(fh, 0)  # 0这个参数是指读取该excel哪个sheet 索引0开始计数
condition = ["国六", "新能源"]  # 筛选条件一定要写成列表不然生效
a = df.loc[~df["排放标准"].isin(condition)]  # 筛选不是国六、新能源的车 
ness_data = a["车牌号"] #取出筛选后的数据
# ness_data = a[["车牌号","排放标准"]] 筛选多列
ness_data_list = ness_data.values.tolist() # 转成pytho中的list类型就可以进行处理了
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhhajjci
系列文章
更多 icon
同类精品
更多 icon
继续加载