【问题标题】:Python: Access a dictionary that is located inside of a text filePython:访问位于文本文件内的字典
【发布时间】:2011-07-12 16:32:41
【问题描述】:

我正在编写一个快速而肮脏的脚本来获取 Chromium 的书签并将它们变成 Openbox 的管道菜单。 Chromium 将其书签存储在一个名为 Bookmarks 的文件中,该文件以字典形式存储信息,如下所示:

{ “校验和”:“99999999999999999999”, “根”:{ “书签栏”:{ “孩子们”: [ { “添加日期”:“9999999999999999999”, “id”:“9”, “名称”:“脸书”, “类型”:“网址”, “网址”:“http://www.facebook.com/” }, { “添加日期”:“999999999999”, “id”:“9”, "名称": "推特", “类型”:“网址”, “网址”:“http://twitter.com/”

我将如何在 Python 中的这个文件中打开这个字典并将它分配给一个变量。我知道你用open() 打开一个文件,但我真的不知道从那里去哪里。最后,我希望能够从像 bookmarks[bookmarks_bar][children][0][name] 这样的变量访问字典中的信息并让它返回 'Facebook'

【问题讨论】:

    标签: python file google-chrome dictionary bookmarks


    【解决方案1】:

    你知道这是不是一个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]
    

    【讨论】:

    • 我什至不知道 JSON 文件是什么。我为我的无能道歉。我会检查是不是。编辑:是的,我发现,它是一个 JSON 文件。所以我会研究那个 JSON 库。我希望有一个更简单的方法。
    • Json 其实真的很简单。看我的例子。它可能无法完全正常工作,但会很接近。
    • 感谢它的神奇效果。我爱你。
    【解决方案2】:

    JSON 绝对是执行此操作的“正确”方式,但对于快速而简单的脚本 eval() 可能就足够了:

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    相关资源
    最近更新 更多