【问题标题】:OSError: [Errno 22] Invalid argument: requestsOSError:[Errno 22] 无效参数:请求
【发布时间】:2021-06-22 12:36:18
【问题描述】:

idle 给出这个错误:

Traceback (most recent call last):
  File "C:\.py", line 10, in <module>
    data_read = open(data)
OSError: [Errno 22] Invalid argument: 'line1\r\nline2\r\nline3

我试图解析 ini、json、yml 总是同样的错误 代码:

import requests

data = requests.get("https://pastebin.com/raw/R9cqXVYN").text

data_read = open(data)

while True:
    line = data_read.readline()
    if not line:
       break

    print(line.strip())

data_read.close

【问题讨论】:

  • 你不需要open()文本数据。它不是一个类似文件的对象。
  • 您没有将response.text 作为文本文件打开,或者如果它实际上是从请求文本中返回文本文件路径,则该路径不正确。

标签: python


【解决方案1】:

open(data) 毫无意义。如果data 是本地文件的路径,但data 已经是文本,那么您的代码只需:

import requests

data_read = requests.get("https://pastebin.com/raw/R9cqXVYN").text

for line in data_read.splitlines():
    print(line)

【讨论】:

  • if not line 永远不会被触发,line.strip() 在这里并不是很有用,因为splitlines() 被调用了:) 但是,是的,这将完成工作!
  • 事实上,if not line 是一个非常糟糕的主意,如果你有一个空行那么你会在结束前停止你的循环
  • @Ankirama 随时根据您的喜好编辑我的答案。
猜你喜欢
  • 2019-04-27
  • 1970-01-01
  • 2018-10-05
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
  • 2021-02-10
  • 2021-11-06
  • 1970-01-01
相关资源
最近更新 更多