【发布时间】:2018-12-14 03:54:07
【问题描述】:
我正在尝试将 JSON 对象作为参数传递给 python2 脚本,它可以工作,但最终的 json 数据有一个单引号 (') 将对象括起来。
下面是我的代码
import json
import sys
print sys.argv[1]
data_str = sys.argv[1].decode('string-escape')
print data_str
# The above print's fine with no single quotes
json_data= {
"server-name": "servername",
"transaction-id": "transaction_id",
"user-id": "user_id",
"change-id": "change_id",
"consumer-name": "consumer_name",
"platform": "platform",
"cookbooks": [
{
"cookbook-name": "cookbook_name",
"cookbook-version": "cookbook_version",
"recipe-name": "receipie_name",
"attributes": {
}
}
]
}
json_data["cookbooks"][0]["attributes"] = data_str.decode('string-escape')
print json_data["cookbooks"]
执行
C:\Python26\python.exe saver.py "{apple:newf,mango:newb}"
{apple:newf,mango:newb}
{apple:newf,mango:newb}
[{'cookbook-name': 'cookbook_name', 'cookbook-version': 'cookbook_version', 'recipe-name': 'receipie_name', 'attributes': '{apple:newf,mango:newb}'}]
从上面的输出中,最终的 json_data 在属性值中包含引号 'attributes': '{apple:newf,mango:newb}' 导致我的 GET 调用出错。 如何转义这个单引号。 ?
【问题讨论】:
-
我认为我们不明白你的问题
标签: python json python-2.7 dictionary