相关文章推荐
活泼的草稿本  ·  gitee-哔哩哔哩_Bilibili·  2 年前    · 

将单引号字符串转换为双引号字符串

35 人关注

我想检查给定的字符串是单引号还是双引号。如果是单引号,我想把它转换为双引号,否则它必须是相同的双引号。

2 个评论
我不相信大家是按照你的意思来解释你的问题的。 这些字符串是否包含这些单引号和双引号 作为内容的一部分 ? 解释你的问题的最好方法是包括一些例子,说明你有哪些输入,你希望输出如何出现,等等。 如果可能的话,从一个实际的 Python 控制台会话中复制和粘贴,这样我们就不会搞错你的意思。
GiM
替换代码0】格式化器会自动为你做这些(除非有很好的理由不这样做)。
python
string
Kumar
Kumar
发布于 2009-12-15
6 个回答
jsbueno
jsbueno
发布于 2021-11-27
已采纳
0 人赞同

在Python中,"单引号 "和 "双引号 "字符串之间没有区别。 两者都在内部被解析为字符串对象。

我的意思是。

a = "European Swallow"
b = 'African Swallow'

内部是字符串对象。

然而,你的意思可能是在一个字符串对象中添加一个额外的引号,以便在打印/导出时,内容本身显示为引号?

c = "'Unladen Swallow'"

如果你在一个字符串里面有一个混合引号,比如。

a = """ Merry "Christmas"! Happy 'new year'! """

然后你可以使用 "替换 "方法将它们全部转换成一种类型。

a = a.replace('"', "'") 

如果你碰巧有嵌套的字符串,那么先把现有的引号替换成转义引号,然后再替换其他的引号。

a = """This is an example: "containing 'nested' strings" """
a = a.replace("'", "\\\'")
a = a.replace('"', "'")
    
谢谢你,首先,我正在动态地获取单引号字符串和双引号字符串,并且正在使用urljoin(dublequote,singlequote),所以在这里我面临的问题是,输出是两者的组合,但我需要它是单一的。
CKM
当使用 json 时,在 ' ' " ". 中的字符串有很大的区别
CKM
json.dumps('dog') '"dog"' 输出到文件中,但我想要 "dog" 。如何做到这一点?
json.dumps 创建了一个Python字符串--如果你在交互式模式下查看它,你会看到 "dog "周围有额外的引号--但是如果你把它写到一个文件中(或者直接使用 json.dump ,会使用单层引号。如果你需要零引号,你应该在json序列化后手动剥离它们。
@jsbueno 是的,但是json.load('dog')会抱怨单引号,因为它期望的是双引号的字符串(这也是rfc7159中的定义)。
MadsVJ
MadsVJ
发布于 2021-11-27
0 人赞同

听起来你是在用JSON工作。我只需确保它始终是一个双引号,像这样。

doubleQString = "{0}".format('my normal string')
with open('sampledict.json','w') as f:
    json.dump(doubleQString ,f)

Notice I'm using dump, not dumps.

Sampledict.json will look like this:

"my normal string"
    
这是一个很好的答案,如果你不想输出到文件, json.dumps 会返回字符串。
双引号是json.dump/dumps的输出--与 .format 的调用无关。你的代码段中的第一行是一个无操作。Python 字符串就是 Python 字符串,不管在输入字面时使用的是什么引号。(而且字符串的默认表示法是使用单引号 - " ' " )
Brian R. Bondy
Brian R. Bondy
发布于 2021-11-27
0 人赞同

区别只是在输入方面。 它们是一样的。

s = "hi"
t = 'hi'
s == t

你甚至可以这样做。

"hi" == 'hi'

提供这两种方法很有用,因为你可以让你的字符串直接包含'"而不需要转义。

同样,常规引号的字符串( "foo" )和三重引号的字符串( """foo""" )之间也没有区别。
CKM
@Brain json.dumps('dog') 输出 '"dog"' 到文件,但我想要 "dog" 。如何做到这一点?
KocT9H
KocT9H
发布于 2021-11-27
0 人赞同

在我的案例中,我需要打印 list in json 格式。 这对我来说很有效。

f'''"inputs" : {str(vec).replace("'", '"')},\n'''

Output:

"inputs" : ["Input_Vector0_0_0", "Input_Vector0_0_1"],

之前没有更换。

f'"inputs" : {vec},\n'
"inputs" : ['Input_Vector0_0_0', 'Input_Vector0_0_1'],
    
Ben Hayden
Ben Hayden
发布于 2021-11-27
0 人赞同

在 Python 中,单引号或双引号的字符串是没有区别的,所以我不知道你为什么要这样做。然而,如果你实际上是指字符串中的单引号字符,那么为了用双引号替换它们,你应该这样做。【替换代码0

I like string.replace("'", '"') slightly better—it has a nice alternating pattern of quotes in it :-).
谢谢你,首先,我正在动态地获取单引号字符串和双引号字符串,并且正在使用urljoin(dulequote,singlequote),所以在这里我面临的问题是,输出是两个组合。非常感谢你
谢谢你回答了这个问题,而不是详细介绍python如何解释引号。 我有一个用例,一个文件需要把它的双引号替换成单引号,这样它就可以被传递到另一种对引号类型敏感的语言中。
Bruno Castro
Bruno Castro
发布于 2021-11-27
0 人赞同

实际上,据我所知,上面的答案都没有回答这个问题,这个问题是如何将单引号字符串转换为双引号的,不管对Python来说是否可以互换,一个人可以用Python自动生成代码,而不是。

一个例子是试图生成一个SQL语句,其中使用哪些引号可能非常重要,此外,双引号和单引号之间的简单替换可能不那么简单(即,你可能有双引号括在单引号里)。

print('INSERT INTO xx.xx VALUES' + str(tuple(['a',"b'c",'dfg'])) +';')