Python编译报错的自我记录

1.

yaml.parser.ParserError: expected '<document start>', but found '<scalar>'

这个后面会跟报错的是哪个文件,第几行。 仔细检查一下,是不是有中文的标点符号,当时我是应为中文的:,导致的这种的报错.

2.

yaml.parser.ParserError: expected '<document start>', but found '<block mapping start>'

在配置文件中定义了块,但是在解析的时候,没有解析块的语句,只要删除[],这种就可以往下走了。在开始新项目的时候这种错误偏多。

3. 

yaml.scanner.ScannerError: while scanning a simple key

方法1: 参考:成功解决Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning a simple key_码上敲享录(但是对我没有用处,我需要继续)

方法2:主要是yaml中有多行的文字,目前还没有解决,暂时的解决方法是配置文件中删除,保证编译通过

4. 

without specifying the Loader=... parameter

参考:https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation

简单的解决办法就是把yaml.open 改成yaml.safe_open就解决了,这是一个告警

5.

cx_Oracle怎么也连接不上数据库,关键是别人还可以

解决方法:参考https://cx-oracle.readthedocs.io/en/latest/installation.html#installing-cx-oracle-on-macos

结论就是,Oracleclient安装的有问题(我的是Mac版本的,麻烦一些),但是这里也记录一下奇怪的事情,Oracle自家的SQL Developer可以使用

6. yaml.scanner.ScannerError: while scanning a double-quoted scalar

解决办法,我的yaml中,是一个这样的sql: "abc"的格式

我发现这个sql内容很复杂,所以,尝试sql: abc  就可以

就是yaml读取的时候,做了各种转义,所以,如果你是"",可能就不行

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 这是一个 YAML 解析错误,提示预期的是文档开始符号 "<document start>",但实际上却找到了标量符号 "<scalar>"。可能是 YAML 文件格式有误,需要检查文件内容并进行修正。 ### 回答2: 这个错误提示出现在使用yaml模块解析yaml文件时,通常是由于yaml文件格式不正确或者出现了语法错误导致的。通常情况下,这个错误提示会给出具体的行号和字符位置,方便我们进行查找和修复。 在yaml文件中,起始符号“---”表示一个yaml文档的开始,象征着一个“空白”文档,这个起始符号必须以单独一行的形式出现。而“<scalar>”则是指yaml文件中出现了其他不符合格式的字符。 例如,下面这个yaml文件: ``` name: tom age: 20 text: 这是一个错误的yaml文件 ``` 在使用yaml模块解析时,会出现上述的错误提示。原因是yaml文件中的“text: 这是一个错误的yaml文件”这一行中,出现了中文字符,yaml文件默认使用unicode编码,而中文字符需要进行正确的编码处理才能被解析正确,如果没有进行编码或者进行了错误的编码处理,就会出现yaml.parser.parsererror。需要将该行中的文字内容转为unicode格式,例如将该行改成: ``` text: "\u8FD9\u662F\u4E00\u4E2A\u9519\u8BEF\u7684yaml\u6587\u4EF6" ``` 就可以成功通过yaml模块进行解析了。 总之,要解决yaml.parser.parsererror: expected '<document start>', but found '<scalar>'这个错误,需要仔细检查yaml文件的格式是否正确,特别是起始符号和编码格式是否符合要求,确保yaml文件符合标准的yaml语法和规范。 ### 回答3: 这个错误提示是在使用PyYAML库解析YAML格式文件时出现的。它的意思是,程序期待使用的是一个YAML文档的起始<document start>标志,但是在代码中却找到了一个标量值<scalar>。 YAML是一种类似于JSON的数据格式,用于存储和交换数据。它的优点是易于阅读和编写,并且支持复杂的数据结构,比如嵌套的列表和字典。但是,由于YAML格式的灵活性较高,其语法要求也比较严格,所以在编写和解析时需要留意一些细节。 常见导致该错误的原因有:代码中存在语法错误,格式不规范等原因,这些问题都可能导致解析器无法正确识别文件的类型,从而抛出“<document start>”错误。解决方法可以是检查代码中相应处的语法和格式,查看是否存在错误。另外,还可以通过使用在线的YAML验证工具,例如:Online YAML Parser(https://codebeautify.org/yaml-validator)或YAML Lint(http://www.yamllint.com/)来验证文件的正确性,以帮助诊断和解决问题。 总之,在编写和处理YAML文件时,需要遵守其特定的语法规则,避免出现错误,并及时通过工具或其他方式进行验证和调试。这样才能更好地利用YAML格式的优势和特点,实现数据的有效存储和交流。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值