строка появляется как TextIOWrapper вместо строки с использованием функции ast.literal_eval () - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь преобразовать строку в словарь, используя ast.literal_eval(). Я использовал API веб-сайта для получения данных в формате Json. Когда я распечатывал данные на своей консоли и использовал функцию type(), он возвращал их в виде строки (но форматировал как словарь). Я написал str в файл json. это выглядит так:

{"productId":1200,"productName":"Mox Sapphire","image":"https://6d4be195623157e28848-7697ece4918e0a73861de0eb37d08968.ssl.cf1.rackcdn.com/1200_200w.jpg","categoryId":1,"groupId":7,"url":"http://store.tcgplayer.com/magic/alpha-edition/mox-sapphire","modifiedOn":"2013-05-09T12:13:41.653","productConditions":[{"productConditionId":15346,"name":"Near Mint","language":"English","isFoil":false},{"productConditionId":317018,"name":"Damaged","language":"English","isFoil":false},{"productConditionId":332776,"name":"Moderately Played","language":"English","isFoil":false},{"productConditionId":348534,"name":"Heavily Played","language":"English","isFoil":false},{"productConditionId":364292,"name":"Lightly Played","language":"English","isFoil":false}]}

Когда я открываю файл и запускаю type(), он выглядит как <class "str">. Затем я пытаюсь преобразовать его в словарь, используя функцию ast.literal_eval() в файле Json, который является строкой, но получаю следующую ошибку:

Traceback (most recent call last):
  File "C:/Users/Jup/PycharmProjects/WebSc/tcg_player.py", line 62, in <module>
    get_card_detail()
  File "C:/Users/Jup/PycharmProjects/WebSc/tcg_player.py", line 59, in get_card_detail
    x = json.loads(f)
  File "C:\Program Files\Python36\lib\json\__init__.py", line 348, in loads
    'not {!r}'.format(s.__class__.__name__))
TypeError: the JSON object must be str, bytes or bytearray, not 'TextIOWrapper'

Я уверен, что мне не хватает чего-то простого. Я не понимаю, как это тип TextIOWrapper, а не строка, когда я использовал type(), и он говорит строку. Если бы вы могли помочь мне увидеть мой (возможно, очевидный) недостаток, это было бы замечательно.

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