android json urlencode,python - urlencode of json data - Stack Overflow

originating from a different question of mine, trying to find an elegant solution in the python code

(mongo PHP turns array into strings)

I have a valid json file, with an array of elements - all with "" (not a single ')

The following python code creates a POST request that causes PHP json_decode to fail

The $_POST array looks like so:

[{u'amount': u'1 (14 ounce) can', u'name': u'black beans, drained', u'short_name': u'black beans'}, {u'amount': u'1 (8 ounce) jar', u'name': u'salsa', u'short_name': u'salsa'}]

(with u'' in the strings)

The code that created this:

json_data = open(json_filename)

elems = json.load(json_data)

running_index=0

for elem in elems:

data = urlencode(elem)

result = urllib2.urlopen(base_url,data)

Any elegant way to make the data "PHP ready"?

Elegant == other than doing (which horrificly works):

data = data.replace("u%27","%22")

data = data.replace("%27","%22")

### 如何在 JMeter 中使用 `--data-urlencode` 方式传递参数 当需要通过 POST 请求发送 `x-www-form-urlencoded` 格式的参数时,在 JMeter 界面中的 HTTP 请求采样器里,可以在 **Parameters** 选项卡中直接添加键值对形式的参数[^1]。 对于 `--data-urlencode` 类型的数据提交方式,实际上是指将表单字段作为 URL 编码后的字符串来处理。这通常用于模拟浏览器提交 HTML 表单的行为。为了达到相同的效果: #### 配置方法如下 - 打开 JMeter 并创建一个新的线程组。 - 添加一个 HTTP 请求,默认情况下它已经配置好了 GET 方法;切换至 POST 方法并设置目标服务器地址。 - 转到 **Send Files with the Request** 下方的 **Parameters** 区域,点击 "Add" 来增加新的参数项。 | 参数名称 (Name) | 参数值 (Value) | | --- | --- | | username | admin | | password | secret | 这些参数会被自动编码成适合 `application/x-www-form-urlencoded` MIME 类型的内容,并附加到请求主体内。 需要注意的是,如果尝试以 JSON 形式或其他非默认格式传送数据,则不应在此处输入任何东西,而是应该转而利用 **Body Data** 字段配合相应的 Content-Type 头部信息[^2]。 另外,确保已正确设置了必要的 HTTP Header Manager 组件以便指定正确的 `Content-Type: application/x-www-form-urlencoded` 值给该请求[^3]。 ```http POST /target HTTP/1.1 Host: example.com Content-Type: application/x-www-form-urlencoded username=admin&password=secret ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值