代码未从JSON GET响应中删除“ \ n”

时间:2019-02-24 00:41:44

标签: python json python-3.x file get

所以我试图从Json GET请求中删除一堆“ \ n”。但是,当我制作响应的字符串副本并尝试.replace(“ \ n”,“”)时,什么都不会删除

def fetchProxy():
    return urllib.request.urlopen("https://api.getproxylist.com/proxy").read()


def createList():
    afile = open("proxies.json", "a")

    i = 1
    for i in range(3):
        proxy = str((fetchProxy())).replace("\n","",-1)
        afile.write(proxy + "\n")
    afile.close()

这是用于获取json并将其放入文件中的所有代码(超过3次)。另外,目前整个项目中的几乎所有代码。

示例json:

b'{\n    "_links": {\n        "_self": "\/proxy",\n        "_parent":
"\/"\n    },\n    "ip": "177.23.106.107",\n    "port": 4145,\n
"protocol": "socks4",\n    "anonymity": "high anonymity",\n
"lastTested": "2019-02-23 23:53:48",\n    "allowsRefererHeader":
true,\n    "allowsUserAgentHeader": true,\n    "allowsCustomHeaders":
true,\n    "allowsCookies": true,\n    "allowsPost": true,\n
"allowsHttps": true,\n    "country": "BR",\n    "connectTime":
"0.692",\n    "downloadSpeed": "155.000",\n    "secondsToFirstByte":
"1.128",\n    "uptime": "45.621"\n}'

2 个答案:

答案 0 :(得分:0)

此电话:

    str((fetchProxy()))

在\ n周围放置转义字符。 您要么要调用替换为

    proxy = str((fetchProxy())).replace("\\n","")

或者,如果您希望将字符串值保存在文件中而不是字节中:

    proxy = fetchProxy().decode().replace('\n', '')

答案 1 :(得分:0)

您必须执行以下操作,其中.replace("\n", "")是一个变量(我将第一个函数更改为变量,以使其在第二个函数中可用,我希望这不会影响所需的结果):

fetchProxy= return urllib.request.urlopen("https://api.getproxylist.com/proxy").read()
fetchProxy=str(fetchProxy)
fetchProxy=fetchProxy.replace("\n", "")


def createList():
    afile = open("proxies.json", "a")

    i = 1
    for i in range(3):
        proxy = fetchProxy 
#str((fetchProxy())).replace("\n","",-1) 
#I am not sure why the last argument in the .replace is -1, because the last argument is number of 
#occurences to be replaced and default is all, if left empty
        afile.write(proxy + "\n")
    afile.close()