4

我正在尝试使用 transcrypt 使用命令将 python 文件转换为 JS transcrypt -b -m -n hello.py。我在我的 python 脚本中有一个对 JSON 的导入:

import json

# the MAIN meaty function!!!
def exec_script_str(script_str, raw_input_lst_json, options_json, finalizer_func):
  if options_json:
    options = json.loads(options_json)
...

我收到此错误消息:

Transcrypt (TM) Python to JavaScript Small Sane Subset Transpiler 版本 3.7.16 版权所有 (C) Geatec Engineering。许可证:Apache 2.0

将目标代码保存在:/home/sarwagya/Desktop/Hello/target/org.transcrypt。runtime .js 将目标代码保存在:/home/sarwagya/Desktop/Hello/ target /re.translate.js 将目标代码保存在:/home/sarwagya/Desktop/Hello/ target /re.js 将目标代码保存在:/home /sarwagya/Desktop/Hello/目标/warnings.js

编译时出错(最后一个有问题的文件):
文件 '/home/sarwagya/Desktop/Hello/hello.py',第 2186 行,在导入:
文件 '/usr/lib/python3.8/json/init .py ',第 108 行,在导入:
文件“编解码器”时,第 44 行,即:无法导入模块“编解码器”

中止

在此之前我有一些进口产品似乎有效。由于 Javascript 中有一个 JSON 包,我原以为成绩单会支持这一点。谢谢您的帮助。

4

1 回答 1

2

完整的标准库尚未移植到 Transcrypt,包括 json 库。在大多数情况下,您可以通过使用 JavaScript 等效库来支持您尝试完成的任何事情来解决这个问题,并且可以直接从您的 Python 代码中调用它们。但是 Transcrypt 不会自动为您执行此库映射,因此您必须显式导入 JavaScript 库才能使用它。

由于Python 字典通过 Transcrypt 转换为 JavaScript 对象,因此您可以按原样使用 JSON 数据。否则,您可以直接调用内置函数,JSON.parse()JSON.stringify()无需导入。

于 2020-08-10T19:24:48.950 回答