我已经删除了一些HTML并希望创建一个json doc。这是我目前的代码:
with open(path.join(path.abspath(path.curdir),'Results\\html.txt'), 'r') as file:
for line in file.readlines():
if not line.strip():
continue
if re.findall(r'\"aggregateRating.*\"telephone\"',line):
reviews = re.findall(r'\[.*\]', line)
json_data = json.loads(str(reviews))
我得到的错误是:json.decoder.JSONDecodeError: Expecting value: line 1 column 2 (char 1)
任何帮助都表示赞赏。我已经坚持了一段时间..
答案 0 :(得分:0)
您的代码正在尝试将列表的字符串表示形式加载为有效的json字符串;这当然行不通。
这与尝试这样做是一样的:
>>> json.loads(str(['hello world']))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.5/json/__init__.py", line 319, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.5/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 2 (char 1)
如果您尝试将结果写为json;你需要做loads
的反面,dumps
:
>>> json.dumps(str(['hello world']))
'"[\'hello world\']"'