Python 和 urllib2:如何使用参数发出 GET 请求

2023-12-22

我正在构建一个“API API”,它基本上是内部 REST Web 服务的包装器,Web 应用程序将向该服务发出大量请求。 一些Web服务调用需要是GET而不是POST,而是传递参数。

是否有一种“最佳实践”方法将字典编码为查询字符串?例如。:?foo=bar&bla=blah

我正在看urllib2 文档 http://docs.python.org/library/urllib2.html,看起来它会根据是否传递参数自行决定使用 POST 还是 GET,但也许有人知道如何使其将 params 字典转换为 GET 请求。

也许那里有类似这样的东西的包?如果它支持 keep-alive 那就太好了,因为 Web 服务器会不断地从 REST 服务请求东西。

理想情况下,它还可以将 XML 转换为某种可遍历的 Python 对象。

Thanks!


Is urllib.urlencode() http://docs.python.org/library/urllib.html#urllib.urlencode不够?

>>> import urllib
>>> urllib.urlencode({'foo': 'bar', 'bla': 'blah'})
foo=bar&bla=blah

EDIT:

您还可以更新现有的 url:

  >>> import urlparse, urlencode
  >>> url_dict = urlparse.parse_qs('a=b&c=d')
  >>> url_dict
  {'a': ['b'], 'c': ['d']}
  >>> url_dict['a'].append('x')
  >>> url_dict
  {'a': ['b', 'x'], 'c': ['d']}
  >>> urllib.urlencode(url_dict, True)
  'a=b&a=x&c=d'

注意parse_qs函数位于cgiPython 2.6 之前的包

编辑 2012 年 4 月 23 日:

您还可以看看python 请求 http://docs.python-requests.org/en/latest/user/quickstart/#passing-parameters-in-urls- 它最终应该杀死 urllibs :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 和 urllib2:如何使用参数发出 GET 请求 的相关文章

随机推荐

  • 托管和非托管应用内产品 android 之间的区别?

    我通过开发者论坛了解了托管和非托管应用内产品之间的区别 他们说 非托管商品的交易信息不会存储在 Android Market 上 这意味着您无法查询 Android Market 来检索购买类型列为非托管商品的交易信息 您负责管理这些商品的
  • 如何使用Eclipse在Android上调试C++代码?

    我写了一些视频流媒体 C 在 PC 上 现在我尝试在 Android 上实现相同的跨平台部分 我 玩 够了NDK并了解一些如何编译和集成C使用 Android 又名 JNI 编写代码 问题是 有时我的应用程序会崩溃 并且如您所知 Andro
  • Heroku - 在浏览器中显示当前提交的哈希值

    我想在浏览器中显示当前 git 提交的哈希值 以便测试团队 无权运行 heruko 命令 能够在错误报告中包含相应的提交哈希值 首先我尝试了 grit 但是有些东西坏了 它在 Heroku 上不起作用 在本地它工作得很好 我不知道为什么它在
  • 在 JFrame 中绘制 Graphics2D

    我正在制作一个 2d 垂直射击游戏 其中除了图形之外的所有内容都已编码 并且可以工作 我以前没有使用过 Graphics 类 所以这对我来说是全新的 以下是我用来将所有内容绘制到 JFrame 的代码 public void paintAl
  • C 中的滚动中位数 - Turlach 实现

    有谁知道 C 语言中是否有 Turlach 滚动中值算法的干净实现 我在将 R 版本移植到干净的 C 版本时遇到问题 看here https stackoverflow com questions 1309263 rolling media
  • 如何在四边形中找到随机点?

    我必须能够为飞行模拟的航路点设置随机位置 数学挑战很简单 在四边形内找到一个随机位置 该点位于任何位置的机会均等 视觉上是这样的 ABCD 四边形示例如下 答 21417 78 37105 97 乙 38197 32 24009 74 C
  • 如何使用 python matplotlib 中的 set_position 方法固定轴位置?

    我认为这很容易 但我搜索了互联网和 matplotlib 用户邮件列表 但无法找到答案 ax2 是图 fig 中 ax 轴内的插入轴 我通过以下方式制作 http matplotlib sourceforge net examples py
  • 上述查询中表空间的用途是什么?

    CREATE TABLE ts pcode tb incase TABLESPACE USERS AS SELECT FROM ts pcode tb 上述查询中表空间的用途是什么 表空间是数据库中数据文件的逻辑组 数据库通常包含至少一个表
  • Dart 使用 RegExp 从 String 中获取轨迹元素

    当我从我们的网站 url 检索数据时 会在其余 api 字段之一中返回此输出 并且我尝试查找是否tracks包含我从下面的内容中获取网址tracks来源是我需要得到 String test div class n div class div
  • symfony assetic 在请求文件时给出 500 错误

    EDITED 我正在使用 assetic 和 symfony2 每次我尝试加载页面时 在请求 JS 和 CSS 文件时 我的浏览器都会收到 500 错误 如果我在地址栏中输入该资源的地址 我就可以成功加载其文件 更奇怪的是 每当 Symfo
  • 如何配置用户上下文/表?

    随着新的 ASP NET MVC 5 预览版发布 如何配置用户上下文 表 在 MVC 4 中 我只使用我自己的 User 类 然后将 WebSecurity 初始化指向它 如下所示 WebSecurity InitializeDatabas
  • Fortran编译器

    我正在 Mac 上开发 Android 应用程序 有谁知道android 的fortran 编译器吗 我打算从 C 例程调用一些 Fortran 例程 然后用 java 类包装 C 例程并使用 JNI 来执行此操作 但是 我无法编译 For
  • 将 lambda 表达式应用于数组元素时出现 ValueError

    目前我在处理 numpy array 4x1 即时遇到错误 1 96113883 3 46144244 5 075857 1 77550086 使用 lambda 函数f lambda x x if x gt 0 else x 0 01 错
  • 通过 C# 代码更改货币

    我使用以下内容来显示金额 String Format 0 C item Amount 这个显示器 9 99 没关系 但是如果我希望应用程序能够控制货币并能够更改货币 该怎么办 9 99 如何通过代码更改货币格式 货币符号由 CultureI
  • haskell 检查用户输入错误

    我在 haskell 中编写应用程序 我想知道这是检查用户输入是否正确的最佳方法 例如当我要求 int 时它是 int 还是当要求格式良好的日期时它是日期 感谢帮助 Use maybeRead 该函数是一个候选函数 包含在 Haskell
  • 在 Windows 上配置 package.json

    我正在尝试在 Windows 上管理 React 项目的配置 它之前在 Mac 上运行 我在用着yarn build 在 的里面package json scripts gt build被配置为 rm rf deployment stati
  • Ruby:将两个哈希合并为一个并连接值

    2 hash h1 s1 gt 2009 7 27 s2 gt 2010 3 6 s3 gt 2009 7 27 h2 s1 gt 12 29 15 s2 gt 10 00 17 s3 gt 12 25 52 我想将两个哈希合并为一个 如下
  • sbt 编译时警告:类型模式 List[String] 中的非变量类型参数 String

    我的 sbt 显示警告消息 non variable type argument String in type pattern List String the underlying of List String is unchecked s
  • Eclipse 意外退出 2022-06 [重复]

    这个问题在这里已经有答案了 我开始学习Java 几天来一直遇到这个错误 我安装了 eclipse 并且运行得很好 第二天 当我尝试打开该应用程序时 它打不开 并且收到一条消息 无法打开应用程序 Eclipse 进而 Eclipse 意外退出
  • Python 和 urllib2:如何使用参数发出 GET 请求

    我正在构建一个 API API 它基本上是内部 REST Web 服务的包装器 Web 应用程序将向该服务发出大量请求 一些Web服务调用需要是GET而不是POST 而是传递参数 是否有一种 最佳实践 方法将字典编码为查询字符串 例如 fo