我的 Python 语法有什么问题:我试图在字符串中使用多个引号和变量

What is wrong with my Python syntax: I am trying to use multiple quotation marks plus variables in a string

我正在尝试使用 Python 写入文件。但是,代码中有多个 " 加上调用一个变量。我根本无法管理语法。

代码应导致:

{
"Name of site": "https://.google.com",

网站是变量而不是字符串。

代码尝试如下。它从不解析变量,只是将其显示为名为 host_name 的字符串。我尝试添加反斜杠和引号(各种类型的单引号和双引号),但无论我尝试什么都不起作用。

with open ("new_file.txt", "a") as f:
           f.write ("{ \n")
           
           f.write("\"Name of site\": \"https://" + host_name + ", \n")

new_file.txt显示:

"Name of site":  "https:// + host_name + "\," + "

我不知道 "\," 来自哪里。

您可以使用 f 字符串,并利用 ''"" 都创建字符串文字的事实。

>>> host_name = example.com
>>> output = "{\n"+ f'"Name of site": "https://{host_name}",' + "\n"
>>> print(output)
{
"Name of site": "https://example.com",


请注意,在该示例中,您必须 连接字符串,以避免 f-strings 不允许使用大括号或反斜杠;然而,甚至有办法解决这个问题。

newline = '\n'
l_curly = "{"
output = f'{l_curly}{newline}"Name of site": "https://{host_name}", {newline}'

这就是您直接构建字符串的方式。但你真正想要的似乎更有可能是构建一个字典,然后使用 JSON.

写出该字典
>>> import json
>>> host_name = 'example.com'
>>> data = {"Name of site": f"https://{host_name}"}
>>> output = json.dumps(data, indent=4)
>>> print(output)
{
    "Name of site": "https://example.com"
}