如何以编程方式使用python脚本将Curl命令转换为python请求

如何以编程方式使用python脚本将Curl命令转换为python请求,python,curl,Python,Curl,我正在尝试使用python脚本将curl命令转换为python请求。我可以找到uncurl模块,并可以使用它成功地转换几个curl命令。但是我面临的问题是如何使我的脚本对所有curl命令都通用。以下问题阻碍了我的工作。我正在尝试用python编写实用程序,它将从文本文件中获取curl命令,并将命令逐个转换为python请求 uncurl不接受GET/POST等命令类型 Curl命令选项如-u、-X等被拒绝 对于删除请求,我应该如何使用uncurl curl-v-k-H“内容类型:applicat

我正在尝试使用python脚本将curl命令转换为python请求。我可以找到uncurl模块,并可以使用它成功地转换几个curl命令。但是我面临的问题是如何使我的脚本对所有curl命令都通用。以下问题阻碍了我的工作。我正在尝试用python编写实用程序,它将从文本文件中获取curl命令,并将命令逐个转换为python请求

  • uncurl不接受GET/POST等命令类型
  • Curl命令选项如
    -u
    -X
    等被拒绝
  • 对于删除请求,我应该如何使用uncurl
  • curl-v-k-H“内容类型:application/json”-H”sync_id:00000000- 0000-0000-0000-000000000001“-H”同步令牌: NhbSzPhbtFlZ9Gm1nLr5f8e0WLGQitG4o00jb006m5Vcs00XVqzRdHcFtyv4YOzd5S02Z3x1iR5OWQINgLP2Og“-H”实例id:实例id“-X获取“example.com” curl-v-k-H“内容类型:application/json”-H“sync_-id:00000000-0000-0000-00000001”-H“sync_-token:NhbSzPhbtFlZ9Gm1nLr5f8e0WLGQitG4o00jb006m5Vcs00XVqzRdHcFtyv4YOzd5S02Z3x1iR5OWQINgLP2Og”--H“实例_-id:instance_-id”--X POST-d'[{”id:“1”,“name:“1”,“name:”1”,“env_-mapping_-name:“env-mapping”:“env_-id:”example.com”

    我用于转换的python代码

    import uncurl
    command = 'curl -v -k -H "Content-Type: application/json" -H "sync_id: 00000000-0000-0000-0000-000000000001" -H "sync_token: NhbSzPhbtFlZ9Gm1nLr5f8e0WLGQitG4o00jb006m5Vcs00XVqzRdHcFtyv4YOzd5S02Z3x1iR5OWQINgLP2Og" -H "instance_id: instance_id"  -X GET 'example.com'
    
    print uncurl.parse(command)
    
    我已经去掉了标签和卷曲选项,它们给了我如下的例外

    def stripTags(command):
        '''Strip off the unwanted tags from the curl command'''
        print '\nCommand is *********************************', command
    
        command = command.replace('-X', '')
        command = command.replace('-k', '')
        command = command.replace('-v', '')
        command = command.replace(' \'', ' \"')
        command = command.replace('\' ', '\" ')
        command = command.replace('\'', '\"')
        command = command.replace(' GET ', '')
        command = command.replace(' POST ', '')
        command = command.replace(' PUT ', '')
        command = command.replace(' POST ', '')
        command = command.replace(' DELETE ', '')
        print '\nStripped string is =============', command
        return command
    
    当我使用下面的curl命令进行转换时,出现了一个异常

    'curl-v--代理用户“00dcf6e7-4513-4e46-bbaf-ef4cac8f8d47”:“XUmh8pIG68Zo”-X GET“example.com”--代理127.0.0.1:8080-k'

    这里的
    -U
    选项很麻烦。同样,我也观察到了其他一些选项的例外情况。因此,我不确定是否正确使用uncurl。 当我从curl.trillworks.com使用在线转换器时,所有curl命令都被转换。 你能告诉我如何将curl命令转换成python请求吗

    ****:-我可以使用“runcurl”包发送curl命令。根据我的理解,uncurl包有发送curl请求的限制,runcurl通过提供“execute”方法来桥接curl请求。我使用了下面的代码来实现这一点。 导入runcurl cmd=“curl-v-u”00dcf6e7-4513-4e46-bbaf-ef4cac8f8d47:“XUmh8pIG68Zo”-X GET“-k” #去掉像-k,-v,-X这样的curl选项,GET会导致runcurl抛出异常。 尝试: code=runcurl.execute(命令) 除: 代码=400 //将失败案例写入某个文件以供进一步参考

    如前所述,我必须去掉curl支持的选项,如'-k','-v'。在上面的curl命令中,身份验证选项与'-u'选项一起提供。但是runcurl抛出了一个异常。 我在这一点上寻求帮助。我的期望是,对于curl支持的必需选项,“runcurl”不应该出错。例如:-'-u'选项。我错过什么了吗?有没有更好的方法来处理上面的curl命令?
    注意:-我试图避免在代码中使用“subprocess.call()”来调用curl命令。

    这是否有帮助?(如果你想得到严肃的答案,请发布一些代码;展示你所做的尝试,并提出一个关于你所处困境的精确问题)。谢谢hiro。我已经检查过你提到的网站了。curl命令正在上述联机转换器上转换。我在这里看到的是python中转换python请求中curl命令的机制/代码。以下是我到目前为止所做的事情的细节,以及我在什么时候陷入困境的细节。我指的是代码(a),请阅读下面的内容。curl-v-k-H“内容类型:application/json”-H“sync_id:00000000-0000-0000-0000-00000001”-H“sync_令牌:nhbszphbtflz9gm1nlr5f8e0wlgqitg4o00jb006m5vcs00xvqzrdhcftyv4yozd5s022z3x1ir5owqinglp2og”-“实例id:instance_id”-X获取“”
    import uncurl uncurl.parse(命令)