从外部python文件中检索python列表(Django)

问题描述 投票:0回答:1

我正在尝试检索从外部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

python django python-3.x list stdout
1个回答
0
投票

尝试这个:

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']]

© www.soinside.com 2019 - 2024. All rights reserved.