我正在使用flask在Python中创建一个rest api并使用curl命令来测试我的函数。
卷曲命令:
$ curl -X POST
-H "Content-Type:application/json"
-d '{"keyword": "2''binders", "country": "xyz", "frequency": "1","url":"www.example.com"}' \
http://127.0.0.1:5000/google
输出:
'['New Request', u'**2binders**', u'xyz', u'www.example.com', u'1']'
正如你所看到的,我在json 2''binders
中传递英寸,但是在我的列表中它正在移除它。
的Python:
json = request.get_json(force=True)
print json
答案 0 :(得分:1)
在curl命令中,尝试使用"keyword": "2\'\'binders"
。您需要转义-d
参数中的单引号,因为您在-d
参数周围使用单引号。
shell变得混乱,并认为你想要字符串连接。例如。 shell看到'abc''def'
并将其解释为'abcdef'
。
答案 1 :(得分:0)
如果您尝试json.dumps
词典本身:
>>> s = json.dumps(d)
>>>
>>> s
'{"url": "www.example.com", "country": "xyz", "frequency": "1", "keyword": "2\'\'binders"}'
^ ^
你会看到它会自动转义'
,如上一个答案所述,逃避它应该对你有所帮助:
>>> json.loads(s)
{u'url': u'www.example.com', u'country': u'xyz', u'frequency': u'1', u'keyword': u"2''binders"} #Single quote is back
答案 2 :(得分:0)
得到了!!!
curl -X POST -d' {"关键字":" 2' \''' \'& #39;粘合剂","国家":" xyz","频率":" 1"," url&# 34;:" http://www.example.com/"}' http://127.0.0.1:5000/google -H" Content-Type:application / json"