Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.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 Azure ratecard api按货币筛选示例_Python_Python 3.x_Azure - Fatal编程技术网

Python Azure ratecard api按货币筛选示例

Python Azure ratecard api按货币筛选示例,python,python-3.x,azure,Python,Python 3.x,Azure,我想根据资源的使用情况获取资源的价格,为此,我正在尝试azure ratecard API。我正在使用Azure提供的python SDK,这里是Azure ratecard API的链接 问题是,我们需要将筛选器作为参数传递,但我不知道如何在筛选器中传递值。我知道我们可以使用offer id、currency、locale、region作为过滤器,但是如何在ratecard api中使用它们? 这就是我正在尝试的 from azure.mgmt.commerce import UsageMan

我想根据资源的使用情况获取资源的价格,为此,我正在尝试
azure ratecard API
。我正在使用Azure提供的python SDK,这里是Azure ratecard API的链接

问题是,我们需要将筛选器作为参数传递,但我不知道如何在筛选器中传递值。我知道我们可以使用offer id、currency、locale、region作为过滤器,但是如何在ratecard api中使用它们?

这就是我正在尝试的

from azure.mgmt.commerce import UsageManagementClient

ratecardclient = UsageManagementClient(credentials, subscription_id)
ratecard = ratecardclient.rate_card.get(filter=???)
我在过滤器里试过什么

ratecard = ratecardclient.rate_card.get("OfferDurableId eq 'MS-AZR-0003P' and Currency eq 'INR' and Locale eq 'en-US' and RegionInfo eq 'US'")

ratecard = ratecardclient.rate_card.get(filter="OfferDurableId eq 'MS-AZR-0003P' and Currency eq 'INR' and Locale eq 'en-US' and RegionInfo eq 'US'")
我从上述过滤器中得到的错误

Traceback (most recent call last):
  File "C:/Users/gsc/PycharmProjects/GsGit_Azure_cot/Azure/ADALAuth.py", line 375, in <module>
    ratecard = ratecardclient.rate_card.get("OfferDurableId eq 'MS-AZR-0003P' and Currency eq 'INR' and Locale eq 'en-US' and RegionInfo eq 'US'")
  File "C:\Users\gsc-30310\PycharmProjects\env_python3.6.8_v1\lib\site-packages\azure\mgmt\commerce\operations\rate_card_operations.py", line 94, in get
    raise models.ErrorResponseException(self._deserialize, response)
azure.mgmt.commerce.models.error_response.ErrorResponseException: Operation returned an invalid status code 'Bad Request'
回溯(最近一次呼叫最后一次):
文件“C:/Users/gsc/PycharmProjects/GsGit_Azure_cot/Azure/ADALAuth.py”,第375行,在
ratecard=ratecardclient.rate\u card.get(“提供的ID eq'MS-AZR-0003P'和货币eq'INR'和地区eq'en US'和地区信息eq'US'”)
文件“C:\Users\gsc-30310\PycharmProjects\env\u python3.6.8\u v1\lib\site packages\azure\mgmt\commerce\operations\rate\u card\u operations.py”,get第94行
raise models.ErrorResponseException(self.\u反序列化,响应)
azure.mgmt.commerce.models.error\u response.ErrorResponseException:操作返回无效的状态代码“错误请求”

我还没有尝试过,但是查看文档和,我相信您需要指定OData筛选器字符串。请尝试类似“作为筛选器字符串”的操作:

OfferDurableId eq '{OfferDurableId}' and Currency eq '{Currency}' and Locale eq '{Locale}' and RegionInfo eq '{RegionInfo}'
所以你的代码应该是:

from azure.mgmt.commerce import UsageManagementClient

ratecardclient = UsageManagementClient(credentials, subscription_id)
ratecard = ratecardclient.rate_card.get(filter="OfferDurableId eq 'MS-AZR-0003p' and Currency eq 'INR' and Locale eq 'en-US' and RegionInfo eq 'US'")  

我还没有尝试过,但是查看文档和,我相信您需要指定OData筛选器字符串。请尝试类似“作为筛选器字符串”的操作:

OfferDurableId eq '{OfferDurableId}' and Currency eq '{Currency}' and Locale eq '{Locale}' and RegionInfo eq '{RegionInfo}'
所以你的代码应该是:

from azure.mgmt.commerce import UsageManagementClient

ratecardclient = UsageManagementClient(credentials, subscription_id)
ratecard = ratecardclient.rate_card.get(filter="OfferDurableId eq 'MS-AZR-0003p' and Currency eq 'INR' and Locale eq 'en-US' and RegionInfo eq 'US'")  
联合测试:

    # OfferDurableID: https://azure.microsoft.com/en-us/support/legal/offer-details/
    rate = self.commerce_client.rate_card.get(
        "OfferDurableId eq 'MS-AZR-0062P' and Currency eq 'USD' and Locale eq 'en-US' and RegionInfo eq 'US'"
    )

来自联合测试:

    # OfferDurableID: https://azure.microsoft.com/en-us/support/legal/offer-details/
    rate = self.commerce_client.rate_card.get(
        "OfferDurableId eq 'MS-AZR-0062P' and Currency eq 'USD' and Locale eq 'en-US' and RegionInfo eq 'US'"
    )

您好,我尝试了
ratecard=ratecardclient.rate\u card.get(filter=“OfferDurableId eq 0003P和Currency eq INR和Locale eq Central US and RegionInfo eq US”)
但我收到
操作返回了无效的状态代码“错误请求”
请尝试
提供的可用ID eq“MS-AZR-0003p”和货币eq“INR”和地区eq“en US”和地区信息eq“US”
。有关更多详细信息,请参见此处:。您好,我已经尝试了
ratecard=ratecardclient.rate\u card.get(filter=“OfferDurableId eq'MS-AZR-0003P”和Currency eq'INR'以及Locale eq'en US'和RegionInfo eq'US')
但我仍然收到了相同的
错误请求
您好,感谢您的支持,代码现在正在运行。我不理解RegionInfo
,它是你购买订阅的地区,所以对我来说,它是印度的
,但我把RegionInfo'value'US'放在这里,因为我认为它与
地区
有关。嗨,我试过
ratecard=ratecardclient.rate\u card.get(过滤器=“可提供的eq 0003P和货币eq INR以及地区eq Central US和RegionInfo eq US”)
但我正在获取
操作返回一个无效的状态代码“错误请求”
请尝试
提供的ID eq'MS-AZR-0003p'和货币eq'INR'以及区域设置eq'en US'和RegionInfo eq'US'
。有关更多详细信息,请参阅此处:。您好,我已尝试
ratecard=ratecardclient.rate\u card.get(筛选器=”提供的可选eq‘MS-AZR-0003P’和货币eq‘INR’以及地区eq‘en US’和地区信息eq‘US’)
这一点,但我还是收到了相同的
错误请求
嗨,谢谢你的支持,代码现在可以正常工作了。我想念'RegionInfo
,它是你购买订阅的地区,所以对我来说,它是印度的
,但我把'RegionInfo`值'放在我们身上,因为我认为它与
地区
有关i、 我正在使用现收现付订阅,因此我的
报价ID
是'MS-AZR-0003P'。我尝试了
ratecard=ratecardclient.rate\u card.get(“报价eq'MS-AZR-0003P'和货币eq'INR'和地区eq'en US'和地区信息eq'US')
但是获取
azure.mgmt.commerce.models.error\u response.ErrorResponseException:操作返回了一个无效的状态代码'Bad Request'
您好,谢谢您的回答。此代码也在工作,我使用的是
RegionInfo
值'US',因为我以为它是'locale
的两位数代码的结尾,但在我的情况下它是'IN'因为我的订阅是在印度购买的。您好,我使用的是现收现付订阅,所以我的
可用ID
是'MS-AZR-0003P'。我尝试过
ratecard=ratecardclient.rate\u card.get(“可用ID eq'MS-AZR-0003P'和货币eq'INR'和地区eq'en US'和地区信息eq'US'))
但是获取
azure.mgmt.commerce.models.error\u response.ErrorResponseException:操作返回了一个无效的状态代码'Bad Request'
您好,谢谢您的回答。此代码也在工作,我使用的是
RegionInfo
值'US',因为我以为它是'locale
的两位数代码的结尾,但在我的情况下它是'IN'因为我的订阅是在印度购买的。