【已解决】请教运行 Python 代码中导入模块 json 导致 Quicker 直接退出,如何处理

使用问题 · 844 次浏览
pdk 创建于 2022-12-22 16:15

问题描述

用下面的代码,Quicker 可以正常获取 inner_tags 的值,也能显示

##.py 

tag = list('abcde')

quicker.context.SetVarValue('inner_tags', tags)

 

但改为下面的代码,则 Quicker 则运行一下,直接退出

 

##.py 
import json


tags = list('abcde')

quicker.context.SetVarValue('inner_tags', tags)

 

尝试导入别的模块,却是正常的

 

##.py 
import math


tags = list('abcde')

error_str = math.fabs(3.1415)

quicker.context.SetVarValue('inner_tags', tags)
quicker.context.SetVarValue('error_str', error_str)

 

 运行环境

  • Windows 10
  • Python 是从官网下载的 3.11,也设置了系统变量

 

 问题

现在有两个问题想请教:

  1. Quicker 直接退出的情况下,如何查看错误原因,`quicker.log` 中没有发现有价值的信息
  2. 如何解决 `import json` 导致异常的问题呢?

欢迎大佬们给点建议或提示

 

----

 

 问题解决

最后发现是传回的数据类型不对。

接收变量的类型定义为列表,但传回了一个 Python 集合类型。

pdk 最后更新于 2022/12/22

pdk 2022-12-22 17:13 :

也不知道有没有使用 Python 的兄弟,能否正常 `import json` ,或者可以测试一下?

回复内容
CL 2022-12-22 16:27
#1

当传递复杂类型变量的情况下会出现类似现象。尽量只返回简单类型的变量,比如字符串或数字。复杂类型建议序列化为json后返回。

pdk 回复 CL 2022-12-22 17:12 :

谢谢回复


是这样的,我是想利用 Python 中 `json` 模块来解析从网页获取的 Json 对象

也准备按照文档中的提示传回的数据尽量简单,会传回一个列表


但,目前的问题是,还没有到处理数据

只是导入这个模块,就崩了

pdk 回复 CL 2022-12-22 17:17 :

还有,想请问一下,Quicker 哪里可以看到系统崩掉的错误提示呢?

ORYS 2022-12-22 17:27
#2

我这里不会报错

##.py 
import json


tags = list('abcde')

quicker.context.SetVarValue('inner_tags', tags)



ORYS 回复 ORYS 2022-12-22 17:29 :



如果导入的包不存在是会有这样的提示的, 建议先把quicker更新为最新版本, 然后检查自己的python环境

pdk 回复 ORYS 2022-12-22 17:30 :

多谢兄弟帮忙测试,那我再想想看,会是哪里出了问题,谢谢!

pdk 回复 ORYS 2022-12-22 17:32 :

已经是最新的,原来是 Anaconda 的虚拟环境,不行

我又去 Python 官网下载了最新的 Python 3.11 

Quicker 也更新为最新的版本了


结果还是老样子


我这边连报错都没有,直接崩了,需要再次启动 Quikcer

ORYS 回复 pdk 2022-12-22 17:38 :



试试把这个填上


CL 回复 pdk 2022-12-22 19:09 :

程序代码中已经加了异常捕获,闪退的时候说明没有捕获到,是一个更底层的错误,从quicker这个角度没有办法得到更多的错误信息了。试试参考上面截图直接指定官网下载安装后的python3x.dll文件。

pdk 回复 ORYS 2022-12-22 19:42 :

谢谢,这个已经填了,否则 Python 跑不了

pdk 2022-12-22 19:47
#3
回复 CL :

程序代码中已经加了异常捕获,闪退的时候说明没有捕获到,是一个更底层的错误,从quicker这个角度没有办法得到更多的错误信息了。试试参考上面截图直接指定官网下载安装后的python3x.dll文件。

谢谢,这个问题已经解决了,是传回的数据类型不对。


接收变量的类型定义为列表,但传回了一个 Python 集合类似,刚刚才发现是这个问题。


上面的 Python 代码是在子程序内运行,或许是这个原因没能捕获到异常。

回复主贴