首页 > 解决方案 > 如何避免换行编码?

问题描述

我正在创建一个循环来发送从 txt 文件中获取数据的 HTTP 请求,但在变量中我得到一个我不知道如何删除的换行符:

import requests

file = open("uuids.txt", "r")

for uuid in file:
    url = 'http://ip:port/api/assets/changeAssetTemplates/{}'.format(uuid)
    headers = {
        ...
    }
    print(url)
    response = requests.request("GET", url, headers=headers)
    print(response.text)

第一张印刷品描绘了这一点:

http://ip:port/api/assets/changeAssetTemplates/f4c71dd5-13af-428a-a3a5-4cbaf10d9bd3

一个很好的网址。但是第二个打印显示了请求中的错误:

{"timestamp":1563971402621,"status":404,"error":"Not Found","message":"No message available","path":"/api/assets/changeAssetTemplates/f4c71dd5-13af-428a-a3a5-4cbaf10d9bd3%0A"}

我们可以看到从 uuid 变量中获取的数据正在换行(%0A),我想知道如何避免这个问题。

顺便说一下uuids.txt的例子:

f4c71dd5-13af-428a-a3a5-4cbaf10d9bd3
1a71d6dc-a9b3-43fa-b675-747af9d7c202
2465ea64-3334-44b1-8f23-16e4df3aeea1
2fb98bba-d03d-495a-b5a2-9656bf623854
7a2aca40-dc5c-4aec-b700-7d0a91d39dd8
983ce44b-ab24-49bb-b128-8a30712dc2ca
2487e2ed-bff5-4195-ab5e-875210e634b0
965c62da-7c7a-4bf3-a0b8-de60d9b392dd
8b9bcf8c-0163-48cc-8603-3447ab7f29f6
0a7a5db9-67be-4a2a-af58-0189565caa2d

标签: pythonhttp

解决方案


只需像这样从 uuid 中删除换行符:

for uuid in file:
    url = 'http://ip:port/api/assets/changeAssetTemplates/{}'.format(uuid.replace('\n',''))
    headers = {
        ...
    }
    print(url)
    response = requests.request("GET", url, headers=headers)
    print(response.text)

如果您在 Windows 上,请小心,换行符可能'\r\n'不是'\n';


推荐阅读