2014-12-29 3 views
-1

Я использую запросы модульным, чтобы получить ответ от URL некоторого сайта это:Как расшифровать строку с юникодом

response = requests.get(request_url) 
result = response.json() 

Таким образом, я получаю результат с типом Словаре со значением образца как следующее:

result = {u'bids': [[u'16.85', u'53.4125', u'900'], [u'16.83', u'713.0125', u'12000']], u'asks': [[u'9999999999.00', u'0.0001', u'1000000']]} 

Мне просто интересно, как получить Dict со значениями их первоначального образования:

result = {bids: [[16.85, 53.4125, 900], [16.83, 713.0125, 12000]], asks: [[123.00', 0.02, 10]]} 

То есть, ч ange unicodes к их формальному формированию, пусть тип float - тип float, int to int, str to str.

Пожалуйста, предоставьте некоторое решение и спасибо.

+4

Это все строки в исходном источнике JSON *. Как бы вы определили, что такое float и что здесь целое? –

+0

Вы можете попробовать "eval" – BurningKarl

+0

Вам не нужно преобразовывать ключи Unicode в строки здесь; Python будет автоматически кодировать/декодировать по мере необходимости, а ваши ключи используют только символы ASCII, что делает все это работой. Если ваши значения списка соответствуют шаблону, просто используйте 'float()' для первых двух и 'int()' для третьего значения для каждого вложенного списка. –

ответ

0

Чтобы разобрать любое строковое представление объекта на объект (например, "[1, 2, 3]" в [1, 2, 3]) у вас есть два варианта:

Существует встроенный функция, называемая eval, которая делает такие вещи, но она небезопасна, потому что она анализирует любое выражение python, которое возвращает значение, а кто-то, кто знает python и его синтаксис, может повредить вашу систему, если вы проанализируете его выражение.

Другой вариант - функция literal_eval от модуля ast. Он анализирует данное выражение как eval, но «строка или узел могут содержать только следующие литературные структуры Python: строки, числа, кортежи, списки, dicts, booleans и None». (от https://docs.python.org/2/library/ast.html#ast.literal_eval). Это более безопасный и рекомендуемый способ анализа данных, извлеченных из ненадежного источника.

Смежные вопросы