gpt4 book ai didi

python - 无法逃脱docker-compose读取的.env文件中的 “\”字符

转载 作者:行者123 更新时间:2023-12-02 21:04:16 24 4
gpt4 key购买 nike

无法使用docker-compose和Python docker镜像(python:3.7.5-stretch)从OS环境中正确设置/获取包含“\” char的转义字符串。

.env文件:

VAR1=abc
VAR2=ABC\{DEFGHIJ

docker-compose文件
version: '3'
services:
python:
env_file:
- .env
...

来自docker的python
>> print(os.environ["VAR1"])
'ABC'
>> print(os.environ["VAR2"])
'ABC\\{DEFGHIJ'

我做过的其他测试(.env => Python)
ABC\\{DEFGHIJ => ABC\\\\{DEFGHIJ 
ABC\\\{DEFGHIJ => ABC\\\\\\{DEFGHIJ
'ABC\{DEFGHIJ' => "'ABC\\{DEFGHIJ'"
"ABC\{DEFGHIJ" => '"ABC\\{DEFGHIJ"'
'ABC\\{DEFGHIJ' => "'ABC\\\\{DEFGHIJ'"

最佳答案

它在Ubuntu 18(作为主机)上运行良好,但在Ubuntu 16上却给出了奇怪的结果。

我在python代码端解决了它:

def os_env_escape(value: str) -> str:
return value.encode("utf-8").decode("unicode-escape").encode("latin1").decode("utf-8")

>> print(os.environ["VAR2"])
'ABC\\{DEFGHIJ'
>> print(os_env_escape(os.environ["VAR2"]))
'ABC\{DEFGHIJ'

关于python - 无法逃脱docker-compose读取的.env文件中的 “\”字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58995405/

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