我遇到了一个问题,我当前的流量生成器:Warp17生成了只与python2兼容的python代码。我们将所有其他的东西都转移到python3上,所以我创建了一个cli工具来包装我们的warp17api。有没有比打印输出并将其加载到json中更好的方法来传递来自下标的信息?你知道吗
#!/usr/bin/python
import python2_api
if __name__ == "__main__":
do_some_argparse()
result = dict(run_some_code_on_args())
print(result)
def run_warp_cli(*args):
result = subprocess.Popen('warp_cli', args)
return json.loads(result)
基本上我就是这么做的。我很好奇是否有什么有趣的方法来避免这样做,并得到一个实际的python字典对象等
在python2和python3之间,字典的二进制表示形式,实际上是对象的二进制表示形式已经发生了很大的变化。这意味着您将无法在Python版本之间直接使用对象。有必要将某种形式的序列化转换为双方都能接受的格式。你知道吗
您使用的JSON格式符合这个标准。我建议坚持使用它,因为它灵活、可读性强,而且非常通用。你知道吗
如果空间成为一个问题,你可以考虑酸洗作为一个替代品,但我不建议它作为第一选择。虽然^{} 可以很好地理解Python 2数据,但是在Python版本之间对数据类型的不同解释,特别是
bytes
:Unpickling a python 2 object with python 3时,需要记住许多注意事项这里有一个资源可以帮助您解决在python3端取消点击时出现的一些常见错误:TypeError: a bytes-like object is required, not 'str' when opening Python 2 Pickle file in Python 3
相关问题 更多 >
编程相关推荐