KeyError 中错误消息的新行 - Python 3.3

2023-11-23

我通过 IDLE 使用 Python 3.3。运行如下代码时:

raise KeyError('This is a \n Line break')

它输出:

Traceback (most recent call last):
  File "test.py", line 4, in <module>
    raise KeyError('This is a \n Line break')
KeyError: 'This is a \n Line break'

我希望它输出带有换行符的消息,如下所示:

This is a
 Line Break

我曾尝试在 os.linesep 之前或使用 os.linesep 将其转换为字符串,但似乎没有任何效果。有什么方法可以强制消息在 IDLE 上正确显示吗?


如果我提出Exception(代替KeyError)那么输出就是我想要的,但我仍然想提出KeyError如果可能的话。


你的问题与IDLE无关。你看到的行为全部来自Python。从命令行以交互方式运行当前存储库 CPython,我们会看到您报告的行为。

Python 3.7.0a2+ (heads/pr_3947:01eae2f721, Oct 22 2017, 14:06:43)
[MSC v.1900 32 bit (Intel)] on win32

>>> raise KeyError('This is a \n Line break')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'This is a \n Line break'
>>> s = 'This is a \n Line break'

>>> s
'This is a \n Line break'
>>> print(s)
This is a
 Line break
>>> raise Exception('This is a \n Line break')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
Exception: This is a
 Line break
>>> raise IndexError(s)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: This is a
 Line break
>>> try:
...   raise  KeyError('This is a \n Line break')
... except KeyError as e:
...   print(e)

'This is a \n Line break'
>>> try:
...   raise  KeyError('This is a \n Line break')
... except KeyError as e:
...   print(e.args[0])

This is a
 Line break

我不知道为什么 KeyError 的行为与 IndexError 不同,但打印 e.args[0] 应该适用于所有异常。

EDIT

造成差异的原因在这个旧的跟踪器问题,其中引用了评论KeyError源代码:

/* If args is a tuple of exactly one item, apply repr to args[0].
       This is done so that e.g. the exception raised by {}[''] prints
         KeyError: ''
       rather than the confusing
         KeyError
       alone.  The downside is that if KeyError is raised with an
explanatory
       string, that string will be displayed in quotes.  Too bad.
       If args is anything else, use the default BaseException__str__().
    */

该部分出现在KeyError_str对象定义在Objects/exceptions.cPython 源代码。

我将提到你的问题作为这种差异的另一种体现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

KeyError 中错误消息的新行 - Python 3.3 的相关文章

  • 无法使用 BeautifulSoup4 (Python 3) 抓取特定表

    我想从 Ligue 1 足球网站上抓取一张表格 具体来说 该表包含有关卡片和裁判的信息 http www ligue1 com LFPStats stats arbitre competition D1 http www ligue1 co
  • Python 类型提示:typing.Mapping 与typing.Dict

    我正在开发一个 python 项目 我们使用typing整个模块类型提示 看来我们用的是typing Dict and typing Mapping几乎可以互换 有理由选择其中一种而不是另一种吗 我自己设法回答了这个问题 typing Di
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • C# 的最佳替代“错误继续下一步”是什么?

    如果我为 C 代码放置空的 catch 块 它是否与 VB NET 的 On Error Resume Next 语句等效 try C code catch exception 我问这个问题的原因是因为我必须将 VB NET 代码转换为 C
  • ipython/ pylab/ matplotlib安装和初始化错误

    我在 OS X El Captain 上安装了 matplotlib anaconda ipython 然而 即使在尝试以所有可能的方式设置环境变量之后 我仍无法启动 ipython shell pylab 版本 这是错误 ImportEr
  • neo4j - python 驱动程序,服务不可用

    我对 neo4j 非常陌生 我正在尝试建立从 python3 6 到 neo4j 的连接 我已经安装了驱动程序 并且刚刚开始执行第一步 导入请求 导入操作系统 导入时间 导入urllib 从 neo4j v1 导入 GraphDatabas
  • Python 3.6.1 安装位置

    我在 Ubuntu 16 服务器上安装了 Python 3 6 1 但找不到安装位置 我查看了 usr bin 其中提到了除 3 6 1 之外的所有其他版本 在哪里可以找到该版本的可执行文件 使用命令 whereis python3 6 1
  • C 代码中的错误处理

    当涉及到在 C 库中以一致的方式处理错误时 您认为 最佳实践 是什么 我一直在想有两种方法 始终返回错误代码 典型的函数如下所示 MYAPI ERROR getObjectSize MYAPIHandle h int returnedSiz
  • 如何在 MAMP 上显示错误?

    我有 MAMP 但我不知道如何在其上显示错误 当我的 php 代码出现错误时 它只显示空白页 我在 Google 上搜索过 我发现我必须在所有文件夹和版本上将其更改为 display errors on 并将其包含在我的页面上 错误报告 E
  • 捕获 subprocess.run() 的输入

    我在 Windows 上有一个交互式命令行 exe 文件 是由其他人编写的 当程序出现异常时 它会终止 并且我对程序的所有输入都会丢失 所以我正在编写一个 python 程序 它调用一个阻塞子进程subprocess run 并捕获所有输入
  • Eclipse IDE - 错误:构建路径指定执行环境 Java SE 1.7

    在 Eclipse 中 我收到一个错误 构建路径指定执行环境Java SE 1 7 工作区中没有安装与此环境严格兼容的 JRE 尝试这个 In Eclipse your project gt properties gt java build
  • aiohttp 线程缓慢

    我复制了代码如何在线程中运行 aiohttp 服务器 https stackoverflow com questions 51610074 how to run an aiohttp server in a thread 它运行良好 所以我
  • 导入错误:无法导入名称“FFProbe”

    我无法获取ffprobe包 https github com simonh10 ffprobe在 Python 3 6 中工作 我使用 pip 安装它 但是当我输入import ffprobe it says Traceback most
  • 哪种方式最适合Python工厂注册?

    这是一个关于这些方法中哪一种被认为是最有效的问题 Pythonic 我不是在寻找个人意见 而是在寻找惯用的观点 我的背景不是Python 所以这会对我有帮助 我正在开发一个可扩展的 Python 3 项目 这个想法类似于工厂模式 只不过它是
  • 检查 IP 地址是否在给定范围内

    我想检查一下是否有IP180 179 77 11位于特定范围之间 例如180 179 0 0 180 179 255 255 我编写了一个函数 它将每个 IP 八位字节与其他八位字节进行比较 def match mask IP min ip
  • 如何同时使用不和谐机器人命令和事件?

    我需要制作一个机器人来监听服务器中写入的消息 同时接受命令 Create the Discord client client discord Client client commands Bot command prefix client
  • 加载pickle时出错

    无法加载 pickle 文件 我正在使用 python 3 5 import pickle data pickle load open D ud120 projects final project final project dataset
  • 如何在 __init__ 中使用await设置类属性

    我如何定义一个类await在构造函数或类体中 例如我想要的 import asyncio some code class Foo object async def init self settings self settings setti
  • 为什么 dataclasses.astuple 返回类属性的深层副本?

    在下面的代码中astuple函数正在执行数据类的类属性的深层复制 为什么它不能产生与函数相同的结果my tuple import copy import dataclasses dataclasses dataclass class Dem
  • 无法导入 langchain.agents.load_tools

    我正在尝试使用 LangChain Agents 但无法导入 load tools 版本 langchain 0 0 27 我尝试过这些 from langchain agents import initialize agent from

随机推荐

  • 使用 lm(poly) 获取公式系数[重复]

    这个问题在这里已经有答案了 我正在尝试使用 lm poly 获得某些点的多项式回归 但对它返回的回归公式系数有一些疑问 像这样的样本 x seq 1 100 y x 2 3 x 7 fit lm y poly x 2 结果是 lm form
  • EPOLLRDHUP 不可靠

    我正在通过客户端 服务器 TCP 连接使用非阻塞读 写epoll wait 问题是 我无法使用以下方法可靠地检测 对等关闭连接 事件EPOLLRDHUP旗帜 经常会发生标志未设置的情况 客户端使用close 大多数时候 服务器从epoll
  • 如何在 CSS 选择器或 jQuery 中处理 XML 命名空间?

    我使用 jQuery 来解析 RSS 提要 我可以使用 AJAX 成功获取 RSS 提要 get podcast xml function data xml data xml 现在我可以通过使用获取播客的标题xml find channel
  • data.table fread如何忽略空行[重复]

    这个问题在这里已经有答案了 看起来如果文件中的第二行为空 则不会读取列名 我已经使用过文档中的 header skip 等开关 但无法使其工作 如果我的文件中的第二行为空 如何忽略这个事实并仍然将第一行读取为列名 第二行是空的 gt fre
  • 为什么使用 sys.path.append(path) 而不是 sys.path.insert(1, path)?

    Edit 根据 Ulf Rompe 的评论 使用 1 而不是 0 很重要 否则你会打破sys path 我已经做Python有一段时间了 一年多了 我总是很困惑为什么人们推荐你使用sys path append 代替sys path ins
  • 将应用程序更新至 iOS6

    在苹果开发者论坛上未能找到对此问题的准确答复 与其他 Apple 开发人员一样 我将升级我们的应用程序以支持 iOS6 设备 我已经下载了支持iOS6 SDK的XCode 4 5 我知道我无法使用此 XCode 版本将应用程序的版本提交到应
  • 使用 Java API 从 Elasticsearch 获取所有记录

    我正在尝试使用 Java API 从 Elasticsearch 获取所有记录 但我收到以下错误 n Wild Thing localhost 9300 索引 data read search phase dfs 嵌套 QueryPhase
  • python中“import a.b as b”和“from a import b”有什么区别[重复]

    这个问题在这里已经有答案了 我一直用from a import b但最近一个工作团队决定将一个模块移动到一个新的命名空间中 并发出警告通知 告诉人们更换import b with import a b as b 我从来没有用过import
  • SQL Server 如何处理超时请求?

    假设我使用 C 运行一个长时间运行的 SQL Server 存储过程 假设 30 分钟 进一步假设我在 C 中的查询上设置了 1 小时的超时期限 这样如果出于某种原因该 SP 花费的时间比预期长 我最终不会垄断数据库 最后 假设该存储过程中
  • 在...中找不到 JNI_OnLoad 跳过 init

    我在过去一天左右就收到了这条消息 到目前为止还没有造成任何问题 我早些时候让我的代码与我的本机库一起运行 但今天我添加了一些新功能 但它再次无法工作 LogCat 中没有显示任何错误 但我的程序只是在我的设备上立即打开和关闭 没有任何消息表
  • Jquery 移动粘性页脚

    我想要 Jquery Mobile 中的页脚 它不是固定的 但始终位于页面底部 像这样 http ryanfait com sticky footer 但在 JQuery Mobile 中 不像标准的 JQuery Mobile 固定页脚
  • 如何捕获滚动事件?

    我想实现无限滚动 下面是我的布局的简短形式 由于我有一些元素相对定位 因此 javascript 滚动事件不会触发 如何解决这个问题以便触发滚动事件并实现无限滚动 我的主要布局是 div div class wrapper div div
  • 如何获取站点的物理路径属性

    当我仅列出具有默认格式的站点时 它会显示物理路径 PS C Windows system32 gt sm Get IISServerManager PS C Windows system32 gt sm Sites Name ID Stat
  • 如何获取 WebKit 中所有受支持的 CSS 属性?

    在 Firefox Opera 和 IE 中我可以通过以下方式获取它们 gt gt for k in document body style console log k gt opacity background height textAl
  • 禁用列表视图的滚动并启用整个布局

    您好 我目前正在开发一个 Android 应用程序 它在主活动中有两个列表视图 我想要的是禁用两个列表的滚动并仅允许整个页面滚动 有什么方法可以帮助 我的代码 包com example listviewdemo import android
  • 禁用 Rails 中的资源预编译功能

    我想禁用 Rails 中的资产预编译功能 我正在开发用户可以下载代码的应用程序 我想避免更改下载的 html 文件中的 css 和 js 文件的名称 以便用户可以运行 index html 并查看所有内容 这是该应用程序 http impr
  • 在 Eclipse-CDT 中使用*相对*路径引用第 3 方库

    使用以下方式引用第 3 方 C 组件 例如包含 库 的最佳实践是什么relativeEclipse CDT 中的路径 我正在尝试参考 Boost 和 Google protobuf 我已将它们分别放在工作区的一个文件夹中 例如 home 用
  • 以编程方式设置按钮的边距

    我是 android 新手 陷入了一个非常基本的问题 我正在开发一个应用程序 其中我需要在 fling 上滑动图像 在每个图像上 我必须动态添加按钮 我正在使用 AddContentView 添加按钮来添加按钮一切工作正常 但我想动态设置按
  • 从客户端取消通过 WCF 长时间运行的任务

    我将 WCF 服务设置为 PerCall 我想知道如何从客户端发送 Start 调用来启动长时间运行的进程 并发送 Cancel 命令来取消它 我的 WCF 服务看起来像这样 ServiceBehavior InstanceContextM
  • KeyError 中错误消息的新行 - Python 3.3

    我通过 IDLE 使用 Python 3 3 运行如下代码时 raise KeyError This is a n Line break 它输出 Traceback most recent call last File test py li