我正在尝试检索从外部python文件(algorithm.py
)生成的python列表。在algorithm.py
中有一组用于生成python列表的函数。 algorithm.py
文件没有问题,它按预期生成了python列表。我按照以下步骤将在algorithm.py
中生成的python列表转换为views.py
。
1。)从lec_name
中的函数将变量(views.py
)传递到algorithm.py
,并使用stdout
作为以下语句来检索输出。
lec_name = request.POST['selected_name']
result = run([sys.executable,'//Projects//altg//algorithm.py',lec_name], shell=False, stdout=PIPE)
2。)然后当我print(result.stdout)
时,我收到输出(我期望的python列表作为array of byte
,如下所示。
b"[['0', 'Subject01(IS0001)', 'Z Hall(65)', 'Thursday 10:00-12:00'], ['1', 'Subject02(IS42255)', 'N Hall(90)', 'Wednesday 08:00-10.00']]\r\n"
3。)然后我用print((result.stdout).strip())
删除了\r\n
,并给出了如下输出。
b"[['0', 'Subject01(IS0001)', 'Z Hall(65)', 'Thursday 10:00-12:00'], ['1', 'Subject02(IS42255)', 'N Hall(90)', 'Wednesday 08:00-10.00']]"
这给出了我期望作为array of byte
的python列表,所以我需要将输出(我期望的python列表作为python list
检索。我该如何解决?我尝试了很多事情,但没有成功。我正在使用Python 3.7.4,Django 3.0.1
尝试这个:
import ast
data = b"[['0', 'Subject01(IS0001)', 'Z Hall(65)', 'Thursday 10:00-12:00'], ['1', 'Subject02(IS42255)', 'N Hall(90)', 'Wednesday 08:00-10.00']]"
data_list = ast.literal_eval(data.decode())
print(type(data_list)) # output: <class 'list'>
print(data_list) # output: [['0', 'Subject01(IS0001)', 'Z Hall(65)', 'Thursday 10:00-12:00'], ['1', 'Subject02(IS42255)', 'N Hall(90)', 'Wednesday 08:00-10.00']]