Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.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值';在Robot Framework的HttpLibrary.HTTP中发现错误或我使用的任何关键字_Python_Python 3.x_Api_Robotframework_Web Api Testing - Fatal编程技术网

Python 没有名称为';获取Json值';在Robot Framework的HttpLibrary.HTTP中发现错误或我使用的任何关键字

Python 没有名称为';获取Json值';在Robot Framework的HttpLibrary.HTTP中发现错误或我使用的任何关键字,python,python-3.x,api,robotframework,web-api-testing,Python,Python 3.x,Api,Robotframework,Web Api Testing,我使用Robotframework httplibrary自动化API调用,在本例中,我希望获得POST方法生成的令牌的值。这样我就可以在PUT方法上使用它来更改密码。但不幸的是,我遇到了这个错误,即使我已经声明了库,也找不到关键字 这是一个简单的例子 *** Settings *** Library HttpLibrary.HTTP Library Collections Library JSONLibrary Library SeleniumLibrary *** Variab

我使用Robotframework httplibrary自动化API调用,在本例中,我希望获得POST方法生成的令牌的值。这样我就可以在PUT方法上使用它来更改密码。但不幸的是,我遇到了这个错误,即使我已经声明了库,也找不到关键字

这是一个简单的例子

*** Settings ***
Library  HttpLibrary.HTTP
Library  Collections
Library  JSONLibrary
Library  SeleniumLibrary



*** Variables ***
${web_service}=  http://10.0.50.168:18000

*** Test Cases ***

Create Large JSON Document
    ${document}=  Catenate
    ...  {
    ...  "token" : "oPVo3b3NdkW8uDL2tiyZii"
    ...  }
    Should Be Valid JSON    ${document}
    ${result}=       Get Json Value  ${document}  token
    Should Be Equal  ${result}       "oPVo3b3NdkW8uDL2tiyZii"

您已将
python-3.x
设置为问号,因此我假设您正在计算机上运行python 3.x。
HttpLibrary
robotframeworkhttplibrary
包)是为Python 2.x制作的,因此它与您的版本不兼容。该库中有许多重命名的函数和旧语法异常处理,因此您无法使用Python 3运行它

您可以寻求一种不同的方法,或者将机器上的Python&Robot框架安装降级为符合Python2.X的版本

我知道您想要调用的
应该是有效的JSON
获取JSON值
。这也可以在不使用
HttpLibrary
的情况下实现:

您可以使用Python的
json
库的
json.loads()
来验证json。如果它不是有效的json,它将引发异常

您可以将Json存储到字典中并读取相应字段,而不是
获取Json值

下面是一个验证JSON格式的示例,从JSON中获取
标记
,然后按照预期断言它:

*** Test Cases ***
Create Large JSON Document
    ${document}=  Catenate
    ...  {
    ...  "token" : "oPVo3b3NdkW8uDL2tiyZii"
    ...  }

    # Verify json is a valid format and set it to dictionary:
    &{JSON}=  Evaluate  json.loads('''${document}''')  json

    # Get token from JSON
    ${result}=  Set Variable  ${JSON['token']}
    Should Be Equal  ${result}       oPVo3b3NdkW8uDL2tiyZii

你能用显示错误的执行日志编辑这个问题吗?你确定你在导入时没有收到错误吗。实际上,只有两种可能的答案:导入时出错,或者库确实没有具有该名称的关键字。