【问题标题】:json.dumps modifies the escaping my HTML contentjson.dumps 修改转义我的 HTML 内容
【发布时间】:2015-11-03 14:26:30
【问题描述】:

我有一个基于 REST 的应用程序,它执行 POST 请求。我有一个新的端点,需要上传一个带有转义引号的 HTLM 文件(即在 " 字符之前加上 )。

Python 在代码中使用引号 "" 表示字符串,所以这有点棘手,我尝试了许多变体,试图用转义引号保留我的 HTML 内容,但均未成功。所以这里是源 HTML,只是一个摘录(我使用了三引号以便能够在字符串中使用引号):

htmlScript = """?xml version=\"1.0\" encoding=\"UTF-8\"?"""

print htmlScript?xml version="1.0" encoding="UTF-8"?

然后将 HTML 内容传递到名为 postData 的字典变量中,其中 HTML 看起来仍然很好:

postData = {'transactionScript': '?xml version="1.0" encoding="UTF-8"?', 'alertsEnabled': 0, 'interval': 300, 'testName': 'Valerio API_2015-08-11 13:05:02.644245', 'timeLimit': 30, 'agents': [{'agentId': 4107}, {'agentId': 58}]}

然后我需要像使用应用程序的其他端点一样使用 json.dumps:

data=json.dumps(postData)

这就是问题所在,结果是前面有双反斜杠的引号:

print data
'{"transactionScript": "?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?", "alertsEnabled": 0, "interval": 300, "testName": "Valerio API_2015-08-11 13:05:02.644245", "timeLimit": 30, "agents": [{"agentId": 4107}, {"agentId": 58}]}'

问题:如何在 json.dumps 之后获取带有单引号的 HTML?

【问题讨论】:

    标签: python string escaping quotes


    【解决方案1】:

    我假设在您的上一个示例中您在控制台中输入了dataprint repr(data)?这将打印字符串的表示,其中反斜杠字符编码为\\,以区别于用于转义的单个\ 运算符。详情请见this question

    如果您使用 print data 打印字符串本身,您应该会看到引号被转义,仅在反斜杠上,如您所愿。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-23
      • 2021-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-12
      • 2015-01-23
      • 1970-01-01
      相关资源
      最近更新 更多