Python: доступ к словарю, который находится внутри текстового файла - PullRequest
0 голосов
/ 12 июля 2011

Я работаю над быстрым и грязным скриптом, чтобы получить закладки Chromium и превратить их в конвейерное меню для Openbox.Chromium хранит свои закладки в файле с именем Закладки , в котором хранится информация в виде словаря:

{
   "checksum": "99999999999999999999",
   "roots": {
      "bookmark_bar": {
         "children": [ {
            "date_added": "9999999999999999999",
            "id": "9",
            "name": "Facebook",
            "type": "url",
            "url": "http://www.facebook.com/"
         }, {
            "date_added": "999999999999",
            "id": "9",
            "name": "Twitter",
            "type": "url",
            "url": "http://twitter.com/"

Как мне открыть этот словарь в этом файле на Python и назначитьпеременная.Я знаю, что вы открываете файл с open(), но я не знаю, куда идти дальше.В конце я хочу иметь возможность получить доступ к информации в словаре из переменной, подобной этой bookmarks[bookmarks_bar][children][0][name], и вернуть ее 'Facebook'

Ответы [ 2 ]

4 голосов
/ 12 июля 2011

Знаете ли вы, если это файл JSON?В этом случае python предоставляет библиотеку json .

Json можно использовать в качестве формата сериализации / обмена данными.Это приятно, потому что это кроссплатформенный.Импортировать это, как вы просите, довольно просто, пример из документации:

>>> import json
>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
[u'foo', {u'bar': [u'baz', None, 1.0, 2]}]

Так что в вашем случае это будет выглядеть примерно так:

import json
with open(file.txt) as f:
    text = f.read()
    bookmarks = json.loads(text)
print bookmarks[bookmarks_bar][children][0][name]
1 голос
/ 12 июля 2011

JSON - определенно «правильный» способ сделать это, но для быстрого и грязного сценария eval() может быть достаточно:

with open('file.txt') as f:
    bookmarks = eval(f.read())
...