Python:如何在list / json中保留单引号

时间:2016-05-18 07:00:12

标签: python json curl

我正在使用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

3 个答案:

答案 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"