【问题标题】:Python- Read values from CSV file and add columns values to REST API iteration callsPython- 从 CSV 文件读取值并将列值添加到 REST API 迭代调用
【发布时间】:2022-12-03 09:56:09
【问题描述】:

我是 python 的新手,我正在阅读包含 2 列作为 ID 和文件路径(不存在标题)的 csv 文件。尝试将 ID 输入 URL 和文件路径到下面的 rest api 调用中。无法获取行的值。 如果 row[0] 处的值为 TDEVOPS-1,则它返回数值。

import csv

filename1 = 'E:\\Upload-PM\\attachment.csv'
with open(filename1, 'rb') as csvfile:
    datareader = csv.reader(csvfile)
    for row in csvfile.readlines():
        urlvalue = "https://<url>.atlassian.com/rest/api/3/issue/" + str({row[0]}) + "/attachments"
        url = urlvalue
        print(url)
        headers = {"X-Atlassian-Token": "nocheck"}
        files = {'file': open(row[1], 'rb')}
        r = requests.post(url, auth=('<email>','<token>'), files=files, headers=headers)
        print(r.status_code)
        print(r.text)

输入:

TDEVOPST-5,E:\Upload-PM\att.csv
TDEVOPST-2,E:\Upload-PM\att2.csv
TDEVOPST-3,E:\Upload-PM\att3.csv

错误:

【问题讨论】:

    标签: python csv


    【解决方案1】:

    我不清楚你得到的确切错误是什么。但是你试过使用格式吗?

    urlvalue = "https://<url>.atlassian.com/rest/api/3/issue/{}/attachments".format(row[0])
    

    更新 - 与 cmets 相对应,问题似乎与您读取 csv 文件的方式有关。我建议使用“r”标志来更好地解析字符串。有关详细信息,请参阅 - Difference between parsing a text file in r and rb mode

    另外我建议使用 python os.path 来确保路径有效

    【讨论】:

    • 在这里更新
    • 可能,因为我想读取行列值,所以提取应该不同。我正在使用 row[0],它将 T 转换为 ASCI 作为 84,而我想要第 1 列第 1 行的整个字符串
    • 哦 明白问题了。阅读时你应该只使用“r”标志。见 - stackoverflow.com/questions/9644110/…
    猜你喜欢
    • 2020-02-19
    • 1970-01-01
    • 2012-10-27
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    相关资源
    最近更新 更多