Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.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通过AWS列表定价API过滤json?_Python_Json_Amazon Web Services - Fatal编程技术网

如何使用python通过AWS列表定价API过滤json?

如何使用python通过AWS列表定价API过滤json?,python,json,amazon-web-services,Python,Json,Amazon Web Services,我想过滤operatinSystem是linux的json,但我对它有一些问题,它是linux中json的一部分 '' : { 我不知道字典是怎么表达的 "DQ578CGN99KG6ECF" : { 我如何用通配符表示它,任何人都可以帮助我 import json import urllib2 response=urllib2.urlopen('https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/curre

我想过滤operatinSystem是linux的json,但我对它有一些问题,它是linux中json的一部分

 '' : { 
我不知道字典是怎么表达的

"DQ578CGN99KG6ECF" : { 
我如何用通配符表示它,任何人都可以帮助我

import json
import urllib2
response=urllib2.urlopen('https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/index.json')
url=response.read()
urlj=json.loads(url)
filterx=[x for x in urlj if x['??']['??']["attributes"]["operatingSystem"] == 'linux']

我不确定通配符的表示形式。我会调查一下,然后再打给你。同时,我以前已经使用过这个json,所以我可以告诉您如何访问所需的信息。 您需要的信息可通过以下方式获得:

for each_product in urlx['products']:
    if urlx['products'][each_product]['attributes']['operatingSystem']=="linux":
        #your code here
如果需要json中的定价信息,则需要获取产品代码字符串并查看priceDimensions字段。查看示例json和相应的代码。
我不确定通配符表示法。我会调查一下,然后再打给你。同时,我以前已经使用过这个json,所以我可以告诉您如何访问所需的信息。 您需要的信息可通过以下方式获得:

for each_product in urlx['products']:
    if urlx['products'][each_product]['attributes']['operatingSystem']=="linux":
        #your code here
如果需要json中的定价信息,则需要获取产品代码字符串并查看priceDimensions字段。查看示例json和相应的代码。

当我使用“operatingSystem”时,it出现故障,但“servicecode”起作用,我不知道原因是什么?如果urlj['products'][each_product]['attributes'][“operatingSystem”]==“linux”:KeyError:“operatingSystem”,这可能是因为“operatingSystem”键仅用于计算实例。因此,您可以检查您正在处理的产品是否是计算实例:如果每个产品[“productFamily”]=“compute instance”,或者检查“operatingSystem”键是否存在,就像urlx[“products”][每个产品][“attributes”]中的“operatingSystem”一样。将这些条件中的任何一个放在回答中的if条件之前当我使用“operatingSystem”it失败,但“servicecode”起作用时,我不知道原因是什么?如果urlj['products'][each_product]['attributes'][“operatingSystem”]==“linux”:KeyError:“operatingSystem”,这可能是因为“operatingSystem”键仅用于计算实例。因此,您可以检查您正在处理的产品是否是计算实例:如果每个产品[“productFamily”]=“compute instance”,或者检查“operatingSystem”键是否存在,就像urlx[“products”][每个产品][“attributes”]中的“operatingSystem”一样。在答案中,将这些条件之一置于if条件之前