1
调用REST API,我很新的Python的,我有个任务由线基础上逗号分隔值解析线非常巨大的.csv文件,然后,我得叫REST API有人可以帮助我一个示例代码。解析一个CSV文件,使用python
基于csv文件的第一列值,我必须调用不同的REST api或创建不同的静态URL及其相应的参数。存储这些值的最佳方式是什么?最好是有一个xml,或散列图或?是.so,当我读了CSV每一行,我得到的网址,并从我的配置所需要的参数,然后我必须做出对REST API的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)
多大'csv'? – agconti
有没有更好的xml或散列图或? - XML是一种文件格式,而哈希映射是内存中的数据结构。也许你可以向我们展示你已经尝试过的代码。 –
谢谢你这么多的response.file大小约为16GB和proecssing应该是非常快。 – user2479840