Объект 'NoneType' не имеет атрибута 'read' при чтении из файла JSON - PullRequest
0 голосов
/ 13 марта 2020

Я делаю сценарий для школьного проекта, который требует, чтобы я получил файл JSON, который сообщает мне, виден ли номерной знак на фотографии. Прямо сейчас код отправляет POST с изображением в API, который затем возвращает мне JSON, что данные JSON отправляются в файл "lastResponse. json."

Код, выдающий ошибку

with open('lastResponse.json', 'r+') as fp:
        f = json.dump(r.json(), fp, sort_keys=True, indent=4) # Where the response data is sent to the JSON
        data = json.load(f) # Line that triggers the error
        print(data["results"]) # Debug code
        print("------------------") # Debug code
        print(data) # Debug code

        # This statement just checks if a license plate is visible
        if data["results"]["plate"] is None:
            print("No car detected!")
        else:
            print("Car with plate number '" + data["results"]["plate"] + "' has been detected")

Ошибка

Traceback (most recent call last):
  File "DetectionFinished.py", line 19, in <module>
    data = json.load(f)
  File "/usr/lib/python3.7/json/__init__.py", line 293, in load
    return loads(fp.read(),
AttributeError: 'NoneType' object has no attribute 'read'

Я не очень опытен в Python, поэтому я бы ценим объяснения!

1 Ответ

0 голосов
/ 13 марта 2020

Оказывается, после перечитывания документации API и использования их примеров я смог исправить свои проблемы

import requests
from pprint import pprint
regions = ['gb', 'it']
with open('/path/to/car.jpg', 'rb') as fp:
    response = requests.post(
        'https://api.platerecognizer.com/v1/plate-reader/',
        data=dict(regions=regions),  # Optional
        files=dict(upload=fp),
        headers={'Authorization': 'Token API_TOKEN'})
pprint(response.json())
...