Преобразовать строку в одинарных кавычках в строку в двойных кавычках - PullRequest
22 голосов
/ 15 декабря 2009

Я хочу проверить, является ли данная строка одинарной или двойной кавычкой. Если это одинарная кавычка, я хочу преобразовать ее в двойную кавычку, иначе она должна быть такой же двойной кавычкой.

Ответы [ 5 ]

13 голосов
/ 15 декабря 2009

В Python нет различий между "одинарными кавычками" и "двойными кавычками": оба анализируются внутри строковых объектов.

Я имею в виду:

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

Внутренне строковые объекты.

Однако, возможно, вы захотите добавить дополнительную строчку внутри строкового объекта, чтобы само содержимое отображалось в кавычках при печати / экспорте?

c = "'Unladen Swallow'" 

Ах, учитывая уточнение (опубликовано в комментариях Кумара ниже):

Если в строке есть кавычки, например:

a = "" "Счастливого Рождества"! Счастливого Нового года! "" "

Затем вы можете использовать метод «заменить», чтобы затем преобразовать все в один тип:

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

Если у вас есть вложенные строки, то замените сначала существующие кавычки на экранированные кавычки, а затем другие кавычки:

a = """This is an example: "containing 'nested' strings" """
a = a.replace("'", "\\\'")
a = a.replace('"', "'")
9 голосов
/ 06 июня 2017

Похоже, вы работаете с JSON. Я просто хотел бы убедиться, что это всегда двойная кавычка, как это:

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

Обратите внимание, что я использую dump, , а не dumps.

Sampledict.json будет выглядеть так:

"my normal string"
5 голосов
/ 15 декабря 2009

Разница только на входе. Они одинаковы.

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

Правда

Вы даже можете сделать:

"hi" == 'hi'

1012 * Правда *

Предоставление обоих методов полезно, потому что вы можете, например, указать, что ваша строка содержит ' или " напрямую, без экранирования.

4 голосов
/ 15 декабря 2009

В Python нет разницы между одинарными или двойными кавычками, поэтому я не знаю, почему вы захотите это сделать. Однако, если вы на самом деле имеете в виду одинарные кавычки внутри строки, то для замены их на двойные кавычки вы должны сделать следующее: mystring.replace('\'', '"')

0 голосов
/ 21 апреля 2019

В моем случае мне нужно было напечатать список в формате json . Это сработало для меня:

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

Выход:

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

Перед без замены:

f'"inputs" : {vec},\n'

"inputs" : ['Input_Vector0_0_0', 'Input_Vector0_0_1'],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...