【发布时间】: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