提问人:Balaji R B 提问时间:11/13/2023 更新时间:11/19/2023 访问量:40
如何在python中导出一组url
How to export a set of url in python
问:
我在 LocalDB 文件夹中有两个文件命名 trigger.sh 和 emp.py。
在 trigger.sh 我有
export emp_code='IT'
py /C/Users/LocalDB/emp.py
在 emp.py
import os
from os import listdir
from os.path import is filed,join
_emp_code=os.environ['emp_code']
Emp_url = {
'IT':{'Emp_url':'www.it.com'},
'Prod':{'Emp_url':'www.prod.com'},
'Qa':{'Emp_url':'www.qa.com'}
}[_emp_code]
Print(Emp_url)
当我触发 trigger.sh 输出时 “”'Emp_url':'www.it.com'“....同样,如果我在shell脚本中更改我的emp_code,它将更改..
现在,我正在尝试在Shell脚本中使用这些url。但是我得到一个“无效的标识符”。
我尝试过以下代码: Trigger.sh
export emp_code='IT'
export _emp_url= '
'IT':{'Emp_url':'www.it.com'},
'Prod':{'Emp_url':'www.prod.com'},
'Qa':{'Emp_url':'www.qa.com'}'
py /C/Users/LocalDB/emp.py
emp.py:
import os
from os import listdir
from os.path import is filed,join
_emp_code=os.environ['emp_code']
Emp_url = os.environ ['_emp_url']
Emp_url = {Emp_url}[_emp_code]
Print(Emp_url)
关于如何解决和清除这个问题的任何想法
答:
现在,我正在尝试在 Shell 脚本中使用这些 url。但是我得到了一个 “无效的标识符”。
当您尝试使用不是有效 shell 变量名称的字符串执行操作时,通常会显示此错误消息。shell 要求 shell 变量名称、符号和被赋值之间没有空格。行中空格后面的任何内容都应是另一个有效的 shell 变量名称,可能后跟值赋值。export
=
export
=
在脚本 Trigger.sh 中,第一行看起来是正确的;第二行是错误的。在第二行中有一个空格,之后使 shell 需要一个 shell 变量名称(“标识符”),但后面是一个字符串,其中包含标识符中不允许的许多字符(多个 、 和换行符)。=
:
{
}
在 emp.py 中,这条线
from os.path import is filed,join
错了,这个词不应该在那里。is
[ ranga ] $ python3
Python 3.9.13
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> from os import listdir
>>> from os.path import is filed,join
File "<stdin>", line 1
from os.path import is filed,join
^
SyntaxError: invalid syntax
在这一行之后:
Emp_url = os.environ ['_emp_url']
Emp_url
仅包含字符串,而不包含 .dict
所以,在这一行中:
Emp_url = {Emp_url}[_emp_code]
创建一个包含整个字符串的条目,然后尝试用(另一个字符串)索引它将失败。{Emp_url}
set
_emp_code
Emp_url中的字符串需要先转换为 a,然后才能用字符串索引它。一种方法是使用包:dict
json
import json
Emp_url = json.loads(os.environ['_emp_url'])
为此,环境变量应包含双引号,而不是单引号。同时仅打印 URL:_emp_url
print Emp_url['Emp_url']
在 Trigger.sh:
- 在第 2 行,删除“=”后面的空格
- 在第 3 行和第 4 行,将单引号的所有实例替换为双引号
- 在第 5 行,将单引号的所有实例(最后一个实例除外)替换为双引号
所以现在 Trigger.sh 可以有类似的东西:
export \
emp_code='IT' \
_emp_url='{
"IT":{"Emp_url":"www.it.com"},
"Prod":{"Emp_url":"www.prod.com"},
"Qa":{"Emp_url":"www.qa.com"}
}'
py /C/Users/LocalDB/emp.py
emp.py 可以有类似的东西
import os
import json
_emp_code=os.environ['emp_code']
Emp_urls = json.loads(os.environ ['_emp_url'])
Emp_url = Emp_urls[_emp_code]['Emp_url']
print(Emp_url)
尝试一下:
[ ranga ] $ export \
> emp_code='IT' \
> _emp_url='{
> "IT":{"Emp_url":"www.it.com"},
> "Prod":{"Emp_url":"www.prod.com"},
> "Qa":{"Emp_url":"www.qa.com"}
> }'
[ ranga ] $ python3
Python 3.9.13
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> import json
>>>
>>> _emp_code=os.environ['emp_code']
>>> Emp_urls = json.loads(os.environ ['_emp_url'])
>>>
>>> Emp_url = Emp_urls[_emp_code]['Emp_url']
>>> print(Emp_url)
www.it.com
>>>
评论
Emp_url
Emp_url
os.environ