如何将excel列表中的数据导入到api python的循环中

问题描述

我正在连接一个 API 并且一切正常,现在我遇到了一个问题,我有一个像这样的数据 excel 列表:

姓名 第二名 年龄
亚历克斯 测试 2020-02-03
pieter 家伙 2020-04-04

在我的脚本中,我有一个名为:name 的变量。

name = data.name   
secondname= data.secondname    
age = data.age     

现在我想制作一个脚本来获取每个循环 1 行的数据。

所以循环1:

亚历克斯测试 2020-02-03

循环 2:

彼得小子 2020-04-04

并将其存储到变量中:姓名、第二姓名、年龄,以便我可以将其与我的有效载荷一起发送

有人可以帮助我吗?我尝试过 Pandas 和 CSV 模块,但它不起作用?

当前脚本:

import csv
with open('Map3.csv',newline='') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row['Name'])

错误

回溯(最近一次调用最后一次):文件“D:/printtest.py”,第 5 行,在 print(row['Name;']) KeyError: 'Name;'

这是我的excel有错误

enter image description here

解决方法

您可以使用 pandas 执行此操作,但您必须安装一个可以读取 Excel 文件的模块。如果您只使用 .xls 扩展,那么模块 xlrd 就足够了。但如果您使用其他扩展程序,例如 .xlsx,则必须安装 openpyxl

这是读取数据框中每个数据的代码。

import pandas

filename = 'myfile.xlsx'
df = pandas.read_excel(filename)

for _,data in df.iterrows():
    name = data.NAME
    secondname = data.SECONDNAME
    age = data.AGE
    # your logic here
,

您在代码中遇到的问题是字典键区分大小写。您正在尝试访问 row['NAME'],但代码正在寻找 row['Name;']。这就是您拥有 KeyError 的原因。要访问文件中的每一列,您必须使用不带分隔符的相同列名。

这是解决问题的代码:

import csv

with open('Map3.csv',newline='') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
       name = row['NAME']
       secondname = row['SECONDNAME']
       age = row['AGE']