我需要将字符串传递给RPC调用,该字符串将在另一侧被接收并编译为Javascript。当我的Javascript代码有2.5mi +行,utf8字符和其他需要跳过的行(',',\',é,^ ...)时,问题就来了。
我已经尝试过使用三重引号并将其作为多行字符串插入,然后用''替换\ n,但是我不确定它是否可以在我的终端运行8min以上而不产生任何结果(RPC端或(没有错误)我的)python端)。
api = Savoir(rpcuser, rpcpasswd, rpchost, rpcport, chainname)
js = "This would be all my JS Code"
print(api.create('txfilter', 'nameOfTheFunction', {}, js))
Here's my JS code (smaller to be easier, ~30k lines)
最佳答案
而不是将其全部粘贴到您的python文件中,您是否考虑过直接从已存在的文件中读取它?
with open("file.js", 'r') as js_file:
js = js_file.read()
# you can put a benchmark here to see how long loading the file takes - or to make sure it loaded correctly
...
api.create('txfilter', 'nameOfTheFunction', {}, js)
这消除了对引号字符,转义字符,换行符等进行大惊小怪的需要,因为它们完全与文件中的样子完全一样-python不会解析此文本,而只是复制它。
我还要指出的是,如果您的javascript文件中的任何字符都需要在另一端省略,则只需在将它们放入程序之前将其从上述文件中删除即可。也可能是因为API调用要花很长时间才能执行,而不是您自己的代码-您可以使用放置在每行之间的
print()
语句或调试器进行验证。