Ошибка преобразования Json строки в Python словарь - PullRequest
0 голосов
/ 12 марта 2020

У меня есть json файл, как показано ниже, и я пытался преобразовать в python словарь, но получаю ошибку

{
  "response": {
    "dev_log": {
      "data": [
        {
          "id": "1",
          "timestamp": "2020-01-16 10:11:12",
          "email": "johnd@gmail.com"
        },
        {
          "id": "2",
          "timestamp": "2020-02-27 15:33:34",
          "email": "zack@gmail.com"
        },
        {
          "id": "3",
          "timestamp": "2020-02-27 15:34:07",
          "email": "edy@yahoo.com"
        }
      ],
      "total_dev_log": "1423"
    },
    "client_log": {
      "data": [
        {
          "customer_city": "LONDON",
          "customer_login": "AAAAAAAAAAAAAA",
          "customer_state": "MC",
          "details": "aaaaaaaaaaa-bbbbbbbbbbbbbbb-cccccccccccccc ",
          "log_number": "1",
          "dept": "Sales",
          "staff_id": "S123",
          "staff_name": "EricY",
          "timestamp": "2020-02-27 15:57:24"
        },
        {
          "customer_city": "SINGAPORE",
          "customer_login": "BBBBBBBBBBBBB",
          "customer_state": "XX",
          "details": "ddddddddd-eeeeeeeeeeee-ffffffffffff ",
          "log_number": "1",
          "dept": "Eng",
          "staff_id": "S456",
          "staff_name": "YongG",
          "timestamp": "2020-02-27 15:57:24"
        }
      ],
      "total_hero_query": "13"
    },
    "response_time": "0.723494",
    "transaction_id": "909122",
    "transaction_status": "OK",
    "transaction_time": "Fri Feb 28 15:27:51 2020"
  }
}

Я могу просмотреть как действительный json через http://jsonviewer.stack.hu. Я полагал, что это правильный json строковый формат.

Normallay Я просто использую код ниже, чтобы прочитать json файл и преобразовать его в dict, но я получаю ошибку.

with open('datfile.json', 'r') as f:
   datDict = json.load(f)

Ошибка

Traceback (most recent call last):
  File "strg2dict.py", line 4, in <module>
    json_dict = json.load(JSON)
  File "/usr/lib/python2.7/json/__init__.py", line 291, in load
    **kw)
  File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 22 column 5 (char 466)

Я проверил решение от других, но все еще не смог найти решение. Пожалуйста, посоветуйте дальше. Спасибо

@@@@@@@@@@@@@@@@@@@@@@@@@ Получил запятую "total_dev_log": "1423",

= ==> удалить запятую "total_dev_log": "1423"

РАЗРЕШЕНО> Спасибо

1 Ответ

2 голосов
/ 12 марта 2020

Ваш json файл содержит запятую в строке 21:

"total_dev_log": "1423",
                       ^ 

Спецификация JSON не допускает запятые . Просто удалите эту запятую, чтобы исправить ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...