如何逐行读取CSV文件并更新Python脚本?

2024-10-02 22:29:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下Python 2.7脚本:

import urllib as ul
tracking_id = "abcde=="
encodedtrackingid = ul.quote(tracking_id)
mcid = "123456"

URL = "https://example.com/id?abcd&d_mid="+mcid+"&=124"+encodedtrackingid+"%011"
print URL

from mechanize import Browser
br = Browser()
br.set_handle_robots(False)
response = br.open(URL)
print response.read()     

import requests

url = "https://example.net/rest/v1/mbox/4513452615415"

querystring = {"client":"example"}

payload = "{\r\n              \"mbox\" : \"example\",\r\n\"CloudVisitorId\":\""+mcid+"\",\r\n              \"thirdPartyId\": \""+tracking_id+"\",\r\n              \"contentAsJson\": \"true\",\r\n                             \"mboxParameters\": \r\n                             {        \r\n                             \"mboxMCGLH\": \"6\"     \r\n                             }\r\n}\r\n"
headers = {
    'content-type': "application/json",
    'cache-control': "no-cache",
    'postman-token': "289879f645d-1543-e6df-87fb-1cef88f55110c5"
    }

response = requests.request("POST", url, data=payload, headers=headers, params=querystring)

print(response.text)

我想做的是:

a)通过更新CSV文件中的tracking_id和mcid变量来重复此脚本。在

CSV文件没有标题,包含以下列:

列:A-跟踪_id 列:B-mcid

我需要脚本来读取CSV文件运行第1行的脚本,然后对第2行、第3行、第4行等重复相同的过程。每次脚本运行跟踪_id和mcid变量时,都会更新响应变量的输出,并将响应变量的输出存储到CSV文件中。在

最终结果将是一个CSV文件,其中包含以下内容: A列-跟踪标识 B列-mcid C列-响应

任何帮助都是非常感谢的。在

谢谢


Tags: 文件csvbrimport脚本idurlexample
2条回答

首先,我将初始脚本包装在一个函数中(在下面的代码中是myfunction),将tracking_id和{}作为参数,并返回您希望检索的值。在

import csv

# Loading csv
with open("mycsv.csv", 'r') as csv_file:
    reader = csv.reader(csv_file)
    # Reading row by row
    for row in reader:
        tracking_id = row[0]
        mcid = row[1]

        # Getting result
        result = myfunction(tracking_id, mcid)

        # Opening csv result file in append mode
        with open("mycsv_result.csv", "a+") as csv_save:
            writer = csv.writer(csv_save)
            writer.writerow([tracking_id, mcid, result])
            csv_save.close()

那么这个脚本就可以做到了。在


编辑:

这是缺少的函数。我还建议您使用read this来学习如何创建基本函数。在

^{pr2}$
import csv


#traceroute
traceroute_output = """
185.86.232.2     0.512 ms    0.453 ms    0.414 ms
188.95.232.58    0.795 ms    0.765 ms    0.731 ms
188.95.232.67    1.493 ms    1.463 ms    1.560 ms
188.1.239.85     1.853 ms    1.827 ms    2.001 ms
"""
reader = csv.reader(traceroute_output.splitlines(), delimiter=' ', skipinitialspace=True)

for row in reader:
    if len(row)< 7:
        #neglecting invalid values
        continue
    key_value = row.pop(0)

下面是一些前段时间编写的示例代码,用来解析由空格分隔的CSV文件,您可以根据需要进行修改。我希望这会有用。在

相关问题 更多 >