解析csv文件并使用python调用RESTAPI

解析csv文件并使用python调用RESTAPI,python,rest,Python,Rest,我对Python非常陌生,我的任务是逐行解析一个非常大的.csv文件,然后基于逗号分隔的值,我必须调用一个RESTAPI。有人能帮我编写一个示例代码吗 基于csv文件的第一列值,我必须调用不同的REST api或创建不同的REST URL及其相应的参数。存储这些参数的最佳方法是什么?最好是使用xml、哈希映射还是。因此,当我从csv读取每一行时,我从配置中获得url和所需参数,然后我必须为RESTAPI创建url并调用调用 第二个问题:我们是否需要创建任何线程以使其执行更快 我的代码如下所示 i

我对Python非常陌生,我的任务是逐行解析一个非常大的.csv文件,然后基于逗号分隔的值,我必须调用一个RESTAPI。有人能帮我编写一个示例代码吗


基于csv文件的第一列值,我必须调用不同的REST api或创建不同的REST URL及其相应的参数。存储这些参数的最佳方法是什么?最好是使用xml、哈希映射还是。因此,当我从csv读取每一行时,我从配置中获得url和所需参数,然后我必须为RESTAPI创建url并调用调用

第二个问题:我们是否需要创建任何线程以使其执行更快

我的代码如下所示

import sys, argparse, csv, collections, time, datetime

EventAPIDict = {"evnet_1": "http://rest_apiurl/?",
                "evnet_2": "http://rest_apiurl/?"}

EventParamsDict = {"evnet_1": ("s", "ts"),
                "evnet_2": ("s")}

EventIndexDict = {"evnet_1": ("1", "4"),
                  "evnet_2": ("1")}

def processRow(row):
    print "-----------------------------"
    #print localRow
    event = row[0]
    if event in EventAPIDict:
        print event
        strRESTAPI = EventAPIDict[event]
        i = 0
        for param in EventParamsDict[event]:
            #print param
            indexes = EventIndexDict[event]
            value = row[int(indexes[i])]
            if param == "ts":
                timestamp = value #"2013-05-28 14:28:58"
                value = datetime.datetime.strptime(timestamp, '%Y-%m-%d %H:%M:%S').strftime("%s")
            strRESTAPI = ("%s%s=%s&")%(strRESTAPI, param, value)
            i = i + 1

        strRESTAPI = strRESTAPI[:-1]
        print strRESTAPI
        #TODO: Invoke the Rest API

#TODO: Get the csv file to be parsed.
fileName = "LogDetails.log"
# open csv file
with open(fileName, 'rb') as csvfile:
    csvfile.seek(0)

    reader = csv.reader(csvfile, delimiter=',')

    for row in reader:
        processRow(row)
回答你的问题#1- 是的,此脚本将解析CSV文件并对其执行操作。在我的脚本中,我使用了你的基本结构来做同样的事情。您还可以从XML或JSON格式解析它,这对于其他系统来说更具可移植性

我需要看一个数据文件来理解为什么要做比较等等。我希望输入CSV包含调用RESTAPI所需的所有信息

第二个问题:


使用函数创建不同的线程并执行一定数量的调用。当然,您也有一个问题,即可以同时进行多少次调用,服务器可以处理多少次调用。

csv有多大??使用xml、哈希映射还是XML是一种文件格式,而哈希映射是内存中的数据结构。也许您可以向我们展示您尝试过的代码。非常感谢您的响应。文件大小约为16GB,处理速度应该非常快。请查找我的代码,但处理它需要很长时间