2013-10-14 8 views
0

Возможно ли получить словарь python, где ключи завернуты в "" в противоположность ''?Python словарь ключ/разделитель значений

Что-то вроде этого:

{"key_1":"value_1", .... , "key_n":"value_n"} 

вместо:

{'key_1':'value_1', .... , 'key_n':'value_n'} 
+1

' "Key_1"' такой же, как ' 'key_1''. – falsetru

+6

Эти два полностью идентичны; это просто разница в форматировании. – arshajii

+0

''foobar' == foofar '' – devnull

ответ

1

Да. Котировки полностью взаимозаменяемы; вы также можете определить словарь. Вы также можете использовать тройные котировки ''' и """.

0

Да, если у вас нет кавычек внутри строки. одиночные и двойные кавычки одинаковы BUT

Если один из моих ключей по какой-то причине был, я не знаю: «Не« Я бы использовал двойные кавычки. Если есть вероятность, что у моих ключей будут двойные кавычки, я бы использовал одинарные кавычки.

Редактировать: Я не говорю, что правильно или неправильно иметь кавычки внутри ключевых идентификаторов. Я просто говорю, что это что-то, чтобы рассмотреть, если это реальность, с которой вы сталкиваетесь.

3

Ну, это вид выглядит, как вы хотите JSON форматирования вместо этого ... так может быть:

>>> d = {"key_1":"value_1", "key_n":"value_n"} 
>>> d 
{'key_n': 'value_n', 'key_1': 'value_1'} 
>>> import json 
>>> json.dumps(d) 
'{"key_n": "value_n", "key_1": "value_1"}' 
1

Самый простой способ заставить использование двойных кавычек в строковом представлении словаря будет конвертировать словарь для json. Это тем не менее теряет некоторую информацию о типе, как (например) цифровые клавиши также будут заключены в двойные кавычки:

>>> d = {'key_1':'value_1', 'key_n':'value_n'} 
>>> import json 
>>> json.dumps(d) 
'{"key_1": "value_1", "key_n": "value_n"}' 
>>> json.dumps({1:'a', 2:'b'}) 
'{"1": "a", "2": "b"}' 

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

+0

В моем случае я получаю следующее с помощью json.dumps: {u'key ': u'value'} – steve

+0

@steve, какая версия Python и вы уверен, что нет другого модуля под названием 'json', скрывающего систему? Это неверно, поэтому, если вы получаете, что ваш json-модуль, похоже, очень сломан. – Duncan

+0

Это питон, встроенный в Splunk (http://dev.splunk.com/). Как можно напрямую и явно ссылаться на конкретный модуль? ..like "java.lang.String" – steve

0

Если вы хотите печати словаря вы можете использовать этот фрагмент

print "{%s}" % ", ".join('"%s":"%s"' % pair for pair in D.items()) 
Смежные вопросы