我正在使用Spring Boot 1.5.8
我的application.yml
有以下属性:
my:
path: \\\\hostname\\dir
根据我对YAML spec 5.7. Escaped Characters的理解,双反斜杠\\
是单个反斜杠的有效转义序列,因此上述配置应该产生my.path: \\hostname\dir
的值。
但是,在我的应用程序中,我可以看到该属性的值包含加倍的反斜杠:
@RunWith(SpringRunner.class)
@SpringBootTest
public class PropTest {
@Getter
@Setter
public static class MyProp {
private String path;
}
@Autowired
private MyProp my;
@Test
public void testProp() {
System.out.println(my.path);
}
@Configuration
@EnableConfigurationProperties
public static class Config {
@Bean
@ConfigurationProperties("my")
public MyProp my() {
return new MyProp();
}
}
}
打印:
\\\\host\\dir
我无法将application.yml
中的值放在引号中,因为该文件是由配置系统(SaltStack)生成的,并且它有自己的Yaml渲染库。
它是Spring Boot / Spring Boot使用的Yaml库中的错误吗?有没有办法强制Spring Boot在Yaml中处理双反斜杠作为单个反斜杠的转义?
答案 0 :(得分:2)
引用您链接的规范部分:
请注意,转义序列仅在双引号标量中解释。在所有其他标量样式中,“\”字符没有特殊含义,并且不可打印的字符不可用。
因此,如果你没有引用标量,#list from column 15
L3 = df['15'].tolist()
print (L3)
[0.4, 1.3, 2.5, 3.7, 5.2, 6.9, 9.0, 11.5, 14.7, 19.5, 28.9, 125.8, 1669.0,
3142.0, 4560.0, 5950.0, 7320.0, 8670.0, 0.0, 0.0, 0.0]
是一个像其他人一样的普通字符,你可以写
\