期望值:第1行第2列(字符1)

时间:2017-07-16 04:46:57

标签: python json

我已经删除了一些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)

任何帮助都表示赞赏。我已经坚持了一段时间..

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\']"'