Я хочу проверить, является ли данная строка одиночной или двойной кавычкой. Если это одинарная кавычка, я хочу преобразовать ее в двойную кавычку, иначе она должна быть такой же двойной кавычкой.
Преобразование строки с одной кавычкой в строку с двойными кавычками
Ответ 1
В Python нет разницы между одиночными кавычками и двойными кавычками. оба анализируются внутри для строковых объектов.
Я имею в виду:
a = "European Swallow"
b = 'African Swallow'
Являются внутренне строковыми объектами.
Однако вы могли бы добавить дополнительную цитату внутри строкового объекта, чтобы сам контент отображался при печати/экспорте?
c = "'Unladen Swallow'"
?
Ah - учитывая разуплотнение (опубликовано как коммант Кумара, ниже):
Если у вас есть сочетание кавычек внутри строки, например:
a = "" Веселого Рождества "! Счастливый" новый год "!" "
Затем вы можете использовать метод "replace", чтобы преобразовать все в один тип:
a = a.replace('"', "'")
Если у вас есть вложенные строки, замените сначала существующие кавычки на экранированные кавычки, а затем цитаты otuer:
a = """This is an example: "containing 'nested' strings" """
a = a.replace("'", "\\\'")
a = a.replace('"', "'")
Ответ 2
Похоже, вы работаете с json. Я бы просто удостоверился, что это всегда двойное quouted, как это:
doubleQString = "{0}".format('my normal string')
with open('sampledict.json','w') as f:
json.dump(doubleQString ,f)
Заметьте, что я использую dump
, не dumps
.
Sampledict.json
будет выглядеть следующим образом:
"my normal string"
Ответ 3
Разница только на входе. Они одинаковы.
s = "hi"
t = 'hi'
s == t
True
Вы даже можете сделать:
"hi" == 'hi'
True
Предоставление обоих методов полезно, потому что вы можете, например, содержать строку '
или "
напрямую, без экранирования.
Ответ 4
В Python нет разницы между строками, которые имеют одинарные или двойные кавычки, поэтому я не знаю, почему вы хотели бы это сделать. Однако, если вы действительно имеете в виду символы одиночной кавычки внутри строки, то для замены их двойными кавычками вы должны сделать это: mystring.replace('\'', '"')
Ответ 5
В моем случае мне нужно было распечатать список в формате 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'],