Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么是json.decoder.JSONDecodeError:期望值:第1行第1列(字符0)_Python_Json_Api_Curl - Fatal编程技术网

Python 什么是json.decoder.JSONDecodeError:期望值:第1行第1列(字符0)

Python 什么是json.decoder.JSONDecodeError:期望值:第1行第1列(字符0),python,json,api,curl,Python,Json,Api,Curl,我要一张脸。如果您发送了两张图片,如果它们是同一个人或不是同一个人,则返回链接: 在文档中,他们提到您可以这样请求: curl -X POST "https://api-us.faceplusplus.com/facepp/v3/compare" \ -F "api_key=<api_key>" \ -F "api_secret=<api_secret>" \ -F "face_token1=c2fc0ad7c8da3af5a34b9c70ff764da0" \ -F

我要一张脸。如果您发送了两张图片,如果它们是同一个人或不是同一个人,则返回链接:

在文档中,他们提到您可以这样请求:

curl -X POST "https://api-us.faceplusplus.com/facepp/v3/compare" \
-F "api_key=<api_key>" \
-F "api_secret=<api_secret>" \
-F "face_token1=c2fc0ad7c8da3af5a34b9c70ff764da0" \
-F "face_token2=ad248a809408b6320485ab4de13fe6a9"
但当我运行它时,我得到了:

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
Traceback (most recent call last):
  File "/Users/max/Desktop/Programming/Face/venv/face.py", line 15, in <module>
    result = json.loads(os.popen('curl -X POST "https://api-us.faceplusplus.com/facepp/v3/compare/api_key=myKey/api_secret=mySecret/https://us-mc-prod-asset.oss-us-west-1.aliyuncs.com/mc-official/scripts/demoScript/images/demo-pic33.jpg/https://us-mc-prod-asset.oss-us-west-1.aliyuncs.com/mc-official/scripts/demoScript/images/demo-pic39.jpg"').read())
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/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 1 (char 0)
<Response [404]>
但是,我明白了:

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
Traceback (most recent call last):
  File "/Users/max/Desktop/Programming/Face/venv/face.py", line 15, in <module>
    result = json.loads(os.popen('curl -X POST "https://api-us.faceplusplus.com/facepp/v3/compare/api_key=myKey/api_secret=mySecret/https://us-mc-prod-asset.oss-us-west-1.aliyuncs.com/mc-official/scripts/demoScript/images/demo-pic33.jpg/https://us-mc-prod-asset.oss-us-west-1.aliyuncs.com/mc-official/scripts/demoScript/images/demo-pic39.jpg"').read())
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/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 1 (char 0)
<Response [404]>

curl命令格式不正确,因此,您得到的错误是
无法解析主机:api_key=myKey
,而不是有效的JSON返回数据

但是,(不要偏离您的问题),我建议您使用类似于
请求
(或者
urllib2
,如果您必须使用标准python库)的方式发送HTTP请求。以您现在的方式调用curl将产生意想不到的结果,例如您现在正在处理的内容

此外,
请求
实际上有一个非常方便的
json()
响应对象方法。这将使您的代码更干净,更容易进行故障排除。以下是文档中的一个示例:


这意味着解码JSON时出错,因为解析器不知道如何处理额外的数据。API可能不会返回单个有效的JSON对象,但您必须查看实际下载的内容才能确定这一点。
os.popen(“…”).read()调用的输出是什么?就像乔恩说的,我怀疑不是每个人都这么想@sam I为os.popen(..).read()添加了输出,非常感谢。据我所知,我可以在不必提供api密钥和其他条目的情况下使用请求。此外,在提到的api文档中,使用“curl”来获得结果。但我仍然尝试使用请求,结果是找不到。感谢您的建议!不用担心,你能发布你的请求代码样本吗(当然是经过编辑的)?我会尽力帮忙的。谢谢你,谢谢你!我添加了您可能需要的所有内容。