首页 > 解决方案 > 如何逐行读取excel文件并将其传递给curl命令?

问题描述

所以我正在尝试读取一个 excel 文件并将其传递给 curl 命令。所以在我的 curl 命令中,我需要 4 件事。我需要名称、路径、Tname 和格式。

所以对我来说运行这个脚本,我需要做的就是解析 excel 文件。它应该通过按列解析来获取数据。所以在列中,我有名称、路径和格式等标题。我正在尝试使它读取列并从那里获取数据并将其发送到 curl 命令。一旦它通过,它应该去下一行并做同样的事情,直到它到达最后。

所以我的 curl 命令我知道需要修复的问题。目前我并不关心 curl 命令。我更关心如何获取数据并将其发送到 curl 命令。

我已经通过使用 pandas 获得了 excel 表。一旦我这样做了,我将每一列附加到一个数组中。然后在我的 curl 命令中,我试图通过它。

我在我的网址和用户中使用 * 并出于隐私原因通过。就像我说的,我不关心 curl 命令。我正在尝试修复我的代码以获取数据并将其发送到 curl 命令。

import requests
import json
import pprint
import urllib
import sys
import pandas as pd

path='data.xlsx'
excel=pd.read_excel(path)
name = []
path = []
Tname = []
formatG = []
for cell in excel:
    name.append(cell[:0]),
    path.append(cell[:1]),
    Tname.append(cell[:2]),
    formatG.append(cell[:3])

url='*'
data={
           'name':'{}'.format(name),
           'path':'{}'.format(path),
           'TName':'{}'.format(Tname),
           'formatG':'{}'.format(formatG)           
     }

djson=json.dumps(data)
headers={'content-type':'application/json','Authorization':'token' {}.format(fk)}
response=requests.post(url,data=data_json,headers=headers)
pprint.pprint(response.json())

标签: pythonexcelpandasdataframepython-requests

解决方案


如果你有一个 csv 文件有逗号分隔的数据,例如:

name,path,Tname,formatG
tom,vv,teto,mp4
mane,bb,memo,png

那么您可以使用如下代码:

data = []
with open('myfile.txt') as f:
    for line in f:
        data.append(line.strip().split(','))

data = data[1:]  # get the data without the first row which is data headers
print(data)

for entry in data:  
    name, path, Tname, formatG = entry
    # do your curl stuff

数据看起来像:

[['tom', 'vv', 'teto', 'mp4'], ['mane', 'bb', 'memo', 'png']]

推荐阅读