当前位置: 首页 > 面试题库 >

在Python中的JSON字符串中添加变量值

常智勇
2023-03-14
问题内容

我很困惑为什么这不起作用。我正在尝试在JSON中添加变量值,每次添加它时,它在JSON字符串中均无法正确显示。

hostname = "machineA.host.com"

我需要将以上主机名信息添加到以下JSON文档中-

b"{\"Machine Name\":\"\"+hostname+\"\"}", None, True)

但是每当我以上述方式添加它时,它就根本不起作用。

不知道我在这里做什么错?


问题答案:

您正在转义"字符串中的内部双引号。它应该是:

b"{\"Machine Name\":\""+hostname+"\"}", None, True)

在python中,您还可以'对字符串使用单引号-并且不需要在单引号字符串内转义双引号

b'{"Machine Name":"'+hostname+'"}', None, True)

不过,有两种更好的方法可以做到这一点。第一种是字符串格式,它将变量插入到字符串中:

b'{"Machine Name":"%s"}' % hostname # python 2.x (old way)
b'{{"Machine Name":"{0}"}}'.format(hostname) # python >= 2.6 (new way - note the double braces at the ends)

接下来是Python JSON模块,方法是将python
dict转换为JSON字符串

>>> hostname = "machineA.host.com"
>>> data = {'Machine Name': hostname}
>>> json.dumps(data)
'{"Machine Name": "machineA.host.com"}'

这可能是首选方法,因为它将处理主机名和其他字段中的怪异字符,以确保末尾具有有效的JSON。

您是否有理由使用 bytestring



 类似资料:
  • 问题内容: 该字符串: 总是扩展为: 谁能告诉我为什么? 编辑:上面的扩展的字符串是我的数据库在错误消息中给我的字符串。我正在使用psycopg2访问我的postgres数据库。实际的代码如下所示: 问题答案: 不仅E,而且引号似乎来自user和pw所具有的任何类型。%s只是做str()做的事情,可能会退回到repr(),这两个都有对应的方法和。另外,那不是生成您的结果的代码(我假设有一个%,但是

  • 问题内容: 我尝试在Python中执行此sqlite3查询。我将代码减少到最小,sqlite.connect等有效。 这将返回一个空列表。如果我对字符串进行硬编码,它将起作用并返回值。 问题答案: 参数标记只能用于表达式,即值。您不能将它们用于表和列名之类的标识符。 用这个: 或这个: (并且不要在实际访问完数据之前提交。)

  • 问题内容: Python中是否可以使用任何函数在字符串的某个位置插入值? 像这样: 然后在位置4添加成为 问题答案: 否。Python字符串是不可变的。 但是,可以创建一个具有插入字符的新字符串:

  • 问题内容: 我想int放入一个。这是我目前正在做的事情: 我必须为几个不同的数字运行程序,所以我想做一个循环。但是像这样插入变量不起作用: 如何在字符串中插入变量? 问题答案: 当跟随字符串时,%运算符允许你通过格式代码(在本例中为%d)将值插入该字符串。有关详细信息,请参阅Python文档:

  • 问题内容: 我需要添加一个通常为http:\ somewebsite.com \ somepage.asp格式的URL。当我使用上述URL创建字符串并将其添加到JSON对象json中时 使用 它附加了一个额外的“ \”,当我检查输出时,就像 当我将URL作为 json输出时 您能帮我按原样检索URL吗? 谢谢 问题答案: 您的JSON库会自动转义斜线等字符。在接收端,您必须使用像这样的函数删除那些

  • 问题内容: 我需要一条SQL更新语句来更新所有行的特定字段,并在现有值的前面添加一个字符串“ test”。 例如,如果现有值为“ try”,则应变为“ testtry”。 问题答案: 您可以使用CONCAT函数来执行此操作: 如果您想更聪明地只更新尚未预先测试的列,请尝试