gpt4 book ai didi

ruby - YAML:解析包含方括号作为其第一个字符的字符串时出错

转载 作者:行者123 更新时间:2023-12-04 12:40:47 26 4
gpt4 key购买 nike

我正在用 Ruby 解析 YAML 文件,其中一些输入导致 Psych 语法错误:

require 'yaml'

example = "my_key: [string] string"
YAML.load(example)

导致:
Psych::SyntaxError: (<unknown>): did not find expected key
while parsing a block mapping at line 1 column 1
from [...]/psych.rb:456:in `parse'

我从我无法控制的外部 API 收到此 YAML。我可以看到编辑输入以强制解析为字符串,使用 my_key: '[string] string' ,如“ Do I need quotes for strings in YAML? ”中所述,解决了这个问题,但我不控制如何接收输入。

有没有办法强制将输入解析为某些键(例如 my_key )的字符串?是否有成功解析此 YAML 的解决方法?

最佳答案

一种方法是在将响应读取为 YAML 之前对其进行处理。假设它是一个字符串,您可以使用正则表达式将有问题的模式替换为有效的模式。 IE。

resp_str = "---\nmy_key: [string] string\n"
re = /(\: )(\[[a-z]*?\] [a-z]*?)(\n)/
resp_str.gsub!(re, "#{$1}'#{$2}'#{$3}")
#=> "---\n" + "my_key: '[string] string'\n"

然后你可以做
YAML.load(resp_str)
#=> {"my_key"=>"[string] string"}

关于ruby - YAML:解析包含方括号作为其第一个字符的字符串时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59563415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com