【问题标题】:Reading the Chrome Bookmarks (JSON) file in Python在 Python 中读取 Chrome 书签 (JSON) 文件
【发布时间】:2015-11-11 04:41:32
【问题描述】:

我正在尝试在 Python 中操作 Chrome 书签文件,但遇到了第一个障碍。我有这个代码:

import json
import os

input_filename = os.getenv("APPDATA") + "\..\Local\Google\Chrome\User Data\Default\history"

with open(input_filename) as data_file:
    bookmark_data = json.load(data_file)

当我运行此代码时,我收到以下错误:

Traceback (most recent call last):
File "C:/Users/David/PycharmProjects/MyBookmarks/myBookmarks.py", line 17, in <module>
bookmark_data = json.load(data_file)
File "C:\Python27\lib\json\__init__.py", line 290, in load
**kw)
File "C:\Python27\lib\json\__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "C:\Python27\lib\json\decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Python27\lib\json\decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

Process finished with exit code 1

我对 JSON 不是很熟悉,但鉴于这是 chrome 书签文件,我怀疑这是文件结构的问题,我不知道接下来要尝试什么!有什么想法吗?

提前致谢。

【问题讨论】:

  • 您发布的代码显示json.load(data_file),但错误消息显示该行是json.loads(data_file)。注意额外的's'。如果您正在读取字符串(“加载字符串”),则使用 loads 并使用 load 从文件中读取。我怀疑你的实际代码中有一个额外的 's'。
  • 对不起!我在最初的帖子中不小心出现了错误的错误 - 现在已粘贴正确的错误。
  • SomeGuyOnAComputer - 谢谢,但这个问题与 Chrome 历史记录文件有关,它是一个 SQLite DB,我想阅读 Chrome 书签文件,它是一个 JSON 文件。
  • 好吧——我是个白痴。我的路径指向历史文件而不是书签文件。愚蠢的复制和粘贴!

标签: python json google-chrome


【解决方案1】:
  • Bookmarks 是您要打开的 JSON 文件的名称
  • History 是一个数据库文件,其中包含有关 URL 访问的信息 和下载的文件

【讨论】:

    【解决方案2】:

    指定对我有用的编码

    with open(input_filename, "r", encoding='utf-8') as data_file:
        bookmark_data = json.load(data_file)
    

    灵感:https://pypi.org/project/chrome-bookmarks/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-21
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      相关资源
      最近更新 更多