@egocentrist

Как правильно сформировать RegExp запрос?

Есть строчки вида:

"Indexhibit": {
			"website": "www.indexhibit.org",
			"cats": [ 1 ],
			"meta": { "generator": "Indexhibit" },
			"html": "<(?:link|a href) [^>]+ndxz-studio",
			"implies": [ "PHP", "Apache", "Exhibit" ]
		},
		"Glyphicons": {
			"website": "glyphicons.com",
			"cats": [ 17 ],
			"html": "(?:<link[^>]* href=[^>]+glyphicons(?:\\.min)?\\.css|<img[^>]* src=[^>]+glyphicons)"
		},
		"WordPress": {
			"website": "wordpress.org",
			"cats": [ 1, 11 ],
			"meta": { "generator": "WordPress( [\\d.]+)?\\;version:\\1" },
			"html": [ "<link rel=[\"']stylesheet[\"'] [^>]+wp-(?:content|includes)", "<link[^>]+s\\d+\\.wp\\.com" ],
			"env": "^wp_username$",
			"implies": "PHP"
		},


Пытаюсь экспой спарсить строку название движка и строку html. Т.е. получить результат вида:

Indexhibit "<(?:link|a href) [^>]+ndxz-studio"
Glyphicons "(?:]* href=[^>]+glyphicons(?:\\.min)?\\.css|]* src=[^>]+glyphicons)"
WordPress [ "]+wp-(?:content|includes)", "]+s\\d+\\.wp\\.com" ],


Наработки:

Вытаскиваю название: "(.*)": {$\n
Любая строка: ^\t\t\t".*": .*
Нужная строка: ^\t\t\t"html": (.*)


Как теперь это объеденить?
  • Вопрос задан
  • 2392 просмотра
Решения вопроса 1
winordie
@winordie
Лучшая документация -- исходники
Это же обычный словарь. Если строчки берутся из файла:
import json
import codecs
from pprint import pprint

def ld(p, encoding="utf8"):
    u"""загрузка объекта"""
    with codecs.open(p, "rt", encoding=encoding) as f:
        return json.load(f)

json_dict = ld('my_file.json')
new_dict = dict()
for key in json_dict.keys():
    new_dict[key] = json_dict[key]['html']

pprint(new_dict)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы