代码之家  ›  专栏  ›  技术社区  ›  Jesse Aldridge

python dict的curl命令

  •  -2
  • Jesse Aldridge  · 技术社区  · 9 年前

    我是目前公司的后端开发人员。当前端团队遇到问题时,他们有时会使用Chrome开发工具的“copy request as curl”功能,并向我发送有问题的curl请求。我在想,如果我可以编写一个脚本来以各种方式转换这些卷曲,那会很酷——删除、添加或调整参数等等。

    我认为这里的第一步是将命令解析为更易于使用的内容。我在考虑使用 click docopt ,但没有看到一个简单的命令 command line string -> intelligent python object 或者类似的东西。理想情况下,它不仅适用于这种情况,而且适用于任何有效的Unix命令。有没有一个库可以轻松做到这一点?还是我需要扩展其中一个库?还是我最好从头开始写?

    我试图解析的卷曲示例:

    卷曲 http://myhost?myarg=ACTIVE&myotherarg=1 -H Pragma:无缓存-H 产地: http://localhost:5000 -H接受编码:gzip、deflate、sdch -H接受语言:en-US,en;q=0.8-H授权:令牌xxxxxxx 1234567-H接受:application/json,text/javascript, / ; q=0.01-H缓存控制:无缓存-H用户代理:Mozilla/5.0 (Macintosh;Intel Mac OS X 10_11_2)AppleWebKit/537.36(KHTML等 壁虎)铬/48.0.2564.103 Safari/537.36-H连接:保持活跃-H 参考人: http://localhost:5000/projects/7/overview-all/active/ --压缩的

    2 回复  |  直到 5 年前
        1
  •  0
  •   kungphu    9 年前

    在一般情况下,唯一可行的方法是,如果所有Unix命令(或至少您正在使用的子集)的参数与Python对应的参数之间都有一致的转换,无论传递的参数是什么。这是极不可能的。

    具体来说,对于cURL,标志并不太坏:请尝试使用Python argparse 图书馆( tutorial here )编写一个简单的解析器,将命令本身分离出来 requests 库来建立与其正常关键字参数相对应的字典格式。

        2
  •  0
  •   Jesse Aldridge    8 年前

    找出python模块 shlex 可以做大部分重物。

    我写了一些代码来处理我的特定用例: https://github.com/JesseAldridge/chrome_to_local_curl