вставляют в страницу (идентификатор, заголовок, тело, страница, видимая) Выбор 2, заголовок, тело, страница, видимая
, Может быть сделана (только в MySQL) без УДАЛЕНИЯ при помощи НА ДУБЛИРУЮЩЕМСЯ КЛЮЧЕВОМ ОБНОВЛЕНИИ:
INSERT
INTO page (id, title, body, page, visible)
SELECT 1, title, body, page, visible FROM page WHERE id=2
ON DUPLICATE KEY UPDATE
title= VALUES(title), page= VALUES(page), visible= VALUES(visible);
Однако может также сделанный (возможно, лучше) совместимым ANSI способом с самосоединением:
UPDATE page AS page1 JOIN page AS page2 ON page1.id=1 AND page2.id=2
SET page1.title=page2.title, page1.body= page2.body, page1.page= page2.page, page1.visible=page2.visible
Попробуйте поставить перед строкой префикс 'r', чтобы сделать ее необработанной:
# Python 2.6.2
>>> import json
>>> s = r'{"a":{"a1":"{\"foo\":\"bar\",\"foo1\":\"bar1\"}"}}'
>>> json.loads(s)
{u'a': {u'a1': u'{"foo":"bar","foo1":"bar1"}'}}
То, что Алекс говорит ниже, верно: вы можете просто удвоить косую черту. (Его ответ не был опубликован, когда я начал свой.) Я думаю, что использовать необработанные строки проще, хотя бы потому, что это языковая функция, которая означает то же самое, и в ней труднее ошибиться.
Если вы хотите вставить обратную косую черту в строку, они должны экранировать сами себя.
import simplejson as json
json.loads('{"a":{"a1":"{\\"foo\\":\\"bar\\",\\"foo1\\":\\"bar1\\"}"}}')
Я тестировал это, и Python отлично справляется с этим вводом, за исключением того, что я использовал модуль json, включенный в стандарт библиотека ( import json
, Python 3.1).