2015-04-06 6 views
0

В Python WebSocket Кормите мне строку, как это:Извлечение таблицы из строки питона

'{"type":"done","sequence":49109868,"time":"2015-04-06T17:57:00.86877Z"}' 

Я хотел бы преобразовать эту строку в таблице:

{"type":"done","sequence":49109868,"time":"2015-04-06T17:57:00.86877Z"} 

Похоже, единственное отличие состоит в апострофы в начале и в конце. Любые мысли о том, как это сделать?

ответ

1
import json 

def StringToJson(string): 

    # [1:-1] Assuming you only want to remove the quotes at either end. Strip()   
    #because there might after all be some whitespace present. 

    return json.loads(string.strip()[1:-1]) 


string = """'{"type":"done","sequence":49109868,"time":"2015-04-06T17:57:00.86877Z"}'""" 

table = StringToJson(string) 

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

import json 

parsedString = json.loads(string) # Where string is the text you're trying to access the keys of. 
+0

Это работает! благодаря! Дополнительный вопрос: как преобразовать строку непосредственно в dic? – zql

0
import ast 
ast.literal_eval('{"type":"done","sequence":49109868,"time":"2015-04-06T17:57:00.86877Z"}') 
0

Похоже, вы возвращаете объект json. Вы можете использовать встроенный json-конвертер python, чтобы превратить его в python dict.

import json 
t = json.loads('{"type":"done","sequence":49109868,"time":"2015-04-06T17:57:00.86877Z"}') 

t теперь будет словарь с тех пар ключ/значение

Смотрите эту страницу для большего количества примеров. https://docs.python.org/2/library/json.html

+0

Не работает, так как на обоих концах есть кавычки, и json выдает следующую ошибку: Traceback (последний последний звонок): Файл «», строка 1, в Файл «/usr/lib/python2.7/json /__init__.py ", строка 338, в нагрузках return _default_decoder.decode (s) Файл« /usr/lib/python2.7/json/decoder.py », строка 366, в декоде obj, end = self. raw_decode (s, idx = _w (s, 0) .end()) Файл «/usr/lib/python2.7/json/decoder.py», строка 384, в raw_decode повышает значение ValueError («Нет объекта JSON быть расшифрованным ") – alexisdevarennes

+0

О, я вижу. Я не понимал, что это часть струны. Вы можете сделать «{« type »:« done »,« sequence »: 49109868,« time »:« 2015-04-06T17: 57: 00.86877Z »} '[1, -1] – whaleberg

+0

Похоже, @ user2973474 избил меня к нему – whaleberg

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