2013-09-06 9 views
2

У меня есть база данных, которая возвращает строки как списки в следующем формате:Python: удалить двойные кавычки из JSON отвалов

data = ['(1000,"test value",0,0.00,0,0)', '(1001,"Another test value",0,0.00,0,0)'] 

После этого, я использую json_str = json.dumps(data), чтобы получить строку JSON. После применения json.dumps(), я получаю следующий результат:

json_str = ["(1000,\"test value\",0,0.00,0,0)", "(1001,\"Another test value\",0,0.00,0,0)"] 

Однако мне нужна строка JSON в следующем формате:

json_str = [(1000,\"test value\",0,0.00,0,0), (1001,\"Another test value\",0,0.00,0,0)] 

Так в основном, я хочу, чтобы удалить окружающие двойные кавычки. Я попытался выполнить это с помощью json_str = json_str.strip('"'), но это не сработает. Затем я попробовал json_str = json_str.replace('"', ''), но это также удаляет скрытые кавычки.

Кто-нибудь знает способ сделать это или есть функция в Python, аналогичная json.dumps(), которая дает тот же результат, но без окружающих двойных кавычек?

ответ

0

Вы сбрасываете список строк, поэтому json.dumps делает именно то, что вы просите. Скорее уродливым решением для вашей проблемы может быть что-то вроде ниже.

def split_and_convert(s): 
    bits = s[1:-1].split(',') 
    return (
     int(bits[0]), bits[1], float(bits[2]), 
     float(bits[3]), float(bits[4]), float(bits[5]) 
    ) 

data_to_dump = [split_and_convert(s) for s in data] 
json.dumps(data_to_dump)