JSONDecodeError:期望值

Posted

技术标签:

【中文标题】JSONDecodeError:期望值【英文标题】:JSONDecodeError: Expecting value 【发布时间】:2020-09-04 22:04:29 【问题描述】:

我对编码有点陌生,但我试图通过另一个脚本获取存储在 json 文件中的数据,尽管它不断给我错误 这是我的代码

import requests

URL = "http://127.0.0.1:5000/predict"
TEST_AUDIO_FILE_PATH = "test/soma.wav"

if __name__ =="__main__":
    audio_file = open(TEST_AUDIO_FILE_PATH, "rb")
    values = "file":(TEST_AUDIO_FILE_PATH, audio_file, "audio/wav")
    response = requests.post(URL, files=values)
    data = response.json()

    print(f"Predicted keyword is: data['keyword']")

这是我不断遇到的错误 文件“C:\Users\Tatooine\Desktop\FYP\client.py”,第 11 行,在 response.json()

文件“C:\ProgramData\Anaconda3\lib\site-packages\requests\models.py”,第 897 行,json return complexjson.loads(self.text, **kwargs)

文件“C:\ProgramData\Anaconda3\lib\json__init__.py”,第 348 行,加载中 返回_default_decoder.decode(s)

文件“C:\ProgramData\Anaconda3\lib\json\decoder.py”,第 337 行,在解码中 obj, end = self.raw_decode(s, idx=_w(s, 0).end())

文件“C:\ProgramData\Anaconda3\lib\json\decoder.py”,第 355 行,在 raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None

JSONDecodeError: 期望值

【问题讨论】:

【参考方案1】:

我认为你应该先解码 data 变量 data = response.decode()

然后你可以把它转换成一个json对象

import json 
data = json.loads(data)

然后打印

print(f"Predicted keyword is: data['keyword']")

如果这对你有用,请告诉我

【讨论】:

我试过这个,但它给了我一个 AttributeError: 'Response' object has no attribute 'decode'

以上是关于JSONDecodeError:期望值的主要内容,如果未能解决你的问题,请参考以下文章

json.decoder.JSONDecodeError:期望值:第 1 行第 1 列(字符 0)python

ubuntu linux上的python:json.decoder.JSONDecodeError:期望值:第2行第6列

JSONDecodeError:期望值:Keras+Rest API 应用程序的第 1 行第 1 列(字符 0)

Python/Django 请求 JSONDecodeError:期望值:第 1 行第 1 列(字符 0)

json.decoder.JSONDecodeError:期望值:尝试写入json文件时,第1行第1列(字符0)

在反序列化数据的时候报错raise JSONDecodeError("Expecting value", s, err.value) from None json.decode