本文整理匯總了Python中json.keys方法的典型用法代碼示例。如果您正苦於以下問題:Python json.keys方法的具體用法?Python json.keys怎麽用?Python json.keys使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類json
的用法示例。
在下文中一共展示了json.keys方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: validate
# 需要導入模塊: import json [as 別名]
# 或者: from json import keys [as 別名]
def validate(json, args):
"""
Ensure the json object contains all the keys needed to satisfy
its endpoint (and isnt empty)
"""
if not json:
raise BBJParameterError(
"JSON input is empty. This method requires the following "
"arguments: {}".format(", ".join(args)))
for arg in args:
if arg not in json.keys():
raise BBJParameterError(
"Required parameter {} is absent from the request. "
"This method requires the following arguments: {}"
.format(arg, ", ".join(args)))
示例2: fromJsonFragment
# 需要導入模塊: import json [as 別名]
# 或者: from json import keys [as 別名]
def fromJsonFragment(json, nameFromParent):
if isinstance(json, dict) and hasKeys(json.keys(), ["entries", "sum"], ["name"]):
if json["entries"] in ("nan", "inf", "-inf") or isinstance(json["entries"], numbers.Real):
entries = float(json["entries"])
else:
raise JsonFormatException(json["entries"], "Sum.entries")
if isinstance(json.get("name", None), basestring):
name = json["name"]
elif json.get("name", None) is None:
name = None
else:
raise JsonFormatException(json["name"], "Sum.name")
if json["sum"] in ("nan", "inf", "-inf") or isinstance(json["sum"], numbers.Real):
sum = float(json["sum"])
else:
raise JsonFormatException(json["sum"], "Sum.sum")
out = Sum.ed(entries, sum)
out.quantity.name = nameFromParent if name is None else name
return out.specialize()
else:
raise JsonFormatException(json, "Sum")
示例3: fromJsonFragment
# 需要導入模塊: import json [as 別名]
# 或者: from json import keys [as 別名]
def fromJsonFragment(json, nameFromParent):
if isinstance(json, dict) and hasKeys(json.keys(), ["entries", "min"], ["name"]):
if json["entries"] in ("nan", "inf", "-inf") or isinstance(json["entries"], numbers.Real):
entries = float(json["entries"])
else:
raise JsonFormatException(json["entries"], "Minimize.entries")
if isinstance(json.get("name", None), basestring):
name = json["name"]
elif json.get("name", None) is None:
name = None
else:
raise JsonFormatException(json["name"], "Minimize.name")
if json["min"] in ("nan", "inf", "-inf") or isinstance(json["min"], numbers.Real):
min = float(json["min"])
else:
raise JsonFormatException(json["min"], "Minimize.min")
out = Minimize.ed(entries, min)
out.quantity.name = nameFromParent if name is None else name
return out.specialize()
else:
raise JsonFormatException(json, "Minimize")
示例4: fromJsonFragment
# 需要導入模塊: import json [as 別名]
# 或者: from json import keys [as 別名]
def fromJsonFragment(json, nameFromParent):
if isinstance(json, dict) and hasKeys(json.keys(), ["entries", "mean"], ["name"]):
if json["entries"] in ("nan", "inf", "-inf") or isinstance(json["entries"], numbers.Real):
entries = float(json["entries"])
else:
raise JsonFormatException(json["entries"], "Average.entries")
if isinstance(json.get("name", None), basestring):
name = json["name"]
elif json.get("name", None) is None:
name = None
else:
raise JsonFormatException(json["name"], "Average.name")
if json["mean"] in ("nan", "inf", "-inf") or isinstance(json["mean"], numbers.Real):
mean = float(json["mean"])
else:
raise JsonFormatException(json["mean"], "Average.mean")
out = Average.ed(entries, mean)
out.quantity.name = nameFromParent if name is None else name
return out.specialize()
else:
raise JsonFormatException(json, "Average")
示例5: fromJsonFragment
# 需要導入模塊: import json [as 別名]
# 或者: from json import keys [as 別名]
def fromJsonFragment(json, nameFromParent):
if isinstance(json, dict) and hasKeys(json.keys(), ["entries", "sub:type", "data"]):
if json["entries"] in ("nan", "inf", "-inf") or isinstance(json["entries"], numbers.Real):
entries = float(json["entries"])
else:
raise JsonFormatException(json, "Label.entries")
if isinstance(json["sub:type"], basestring):
factory = Factory.registered[json["sub:type"]]
else:
raise JsonFormatException(json, "Label.sub:type")
if isinstance(json["data"], dict):
pairs = dict((k, factory.fromJsonFragment(v, None)) for k, v in json["data"].items())
else:
raise JsonFormatException(json, "Label.data")
return Label.ed(entries, **pairs)
else:
raise JsonFormatException(json, "Label")
示例6: db_validate
# 需要導入模塊: import json [as 別名]
# 或者: from json import keys [as 別名]
def db_validate(self, args, database, user, **kwargs):
"""
See also [the Input Validation page](validation.md).
Requires the arguments `key` and `value`. Returns an object
with information about the database sanity criteria for
key. This can be used to validate user input in the client
before trying to send it to the server.
If the argument `error` is supplied with a non-nil value,
the server will return a standard error object on failure
instead of the special object described below.
The returned object has two keys:
{
"bool": true/false,
"description": null/"why this value is bad"
}
If bool == false, description is a string describing the
problem. If bool == true, description is null and the
provided value is safe to use.
"""
validate(args, ["key", "value"])
response = dict()
try:
db.validate([(args["key"], args["value"])])
response["bool"] = True
response["description"] = None
except BBJException as e:
if args.get("error"):
raise
response["bool"] = False
response["description"] = e.description
return response
示例7: __convert_json_to_projects_map
# 需要導入模塊: import json [as 別名]
# 或者: from json import keys [as 別名]
def __convert_json_to_projects_map(self, json):
""" Convert JSON format to the projects map format
map[ds][repository] = project
If a repository is in several projects assign to leaf
Check that all JSON data is in the database
:param json: data with the projects to repositories mapping
:returns: the repositories to projects mapping per data source
"""
ds_repo_to_prj = {}
# Sent the unknown project to the end of the list.
# This change is needed to avoid assigning repositories to
# the `Main` project when they exist in the `unknown`
# section and in other sections too.
project_names = list(json.keys())
if UNKNOWN_PROJECT in json:
project_names.remove(UNKNOWN_PROJECT)
project_names.append(UNKNOWN_PROJECT)
for project in project_names:
for ds in json[project]:
if ds == "meta":
continue # not a real data source
if ds not in ds_repo_to_prj:
if ds not in ds_repo_to_prj:
ds_repo_to_prj[ds] = {}
for repo in json[project][ds]:
repo, _ = self.extract_repo_labels(repo)
if repo in ds_repo_to_prj[ds]:
if project == ds_repo_to_prj[ds][repo]:
logger.debug("Duplicated repo: {} {} {}".format(ds, repo, project))
else:
if len(project.split(".")) > len(ds_repo_to_prj[ds][repo].split(".")):
logger.debug("Changed repo project because we found a leaf: {} leaf vs "
"{} ({}, {})".format(project, ds_repo_to_prj[ds][repo], repo, ds))
ds_repo_to_prj[ds][repo] = project
else:
ds_repo_to_prj[ds][repo] = project
return ds_repo_to_prj
示例8: clean_tree
# 需要導入模塊: import json [as 別名]
# 或者: from json import keys [as 別名]
def clean_tree(s):
if type(s) == dict:
for child in s.keys():
s[child] = clean_tree(s[child])
elif type(s) == list:
for index, value in enumerate(s):
s[index] = clean_tree(value)
elif type(s) == str or type(s) == unicode:
if(not is_printable(s)):
return display_with_hex(s)
else:
return s
elif isinstance(s, (int, long, float)):
if isinstance(s, (int, long)):
return str(s) + " (" + str(hex(s)) + ")"
else:
return s
elif isinstance(s, datetime.datetime):
return str(s)
elif s is None:
return s
else:
if(is_iterable(s) and not is_printable(s)):
return display_with_hex(s)
else:
return str(s)
return s
# This function recives a dictionary like
# {"key1": { "something": 1},
# "key2": { "something": 2}}
# and returns
# [ {"name": "key1", "something": 1 },
# {"name": "key2", "something": 2 }]
# This is useful for converting the format
# VirusTotal API sends the AV scans into
# something easily searchable by mongo.
示例9: key_dict_clean
# 需要導入模塊: import json [as 別名]
# 或者: from json import keys [as 別名]
def key_dict_clean(json):
if json is None:
return None
array = []
for key in json.keys():
tmp_dict = json.get(key)
tmp_dict["name"] = key
array.append(tmp_dict)
return array
# Replace dot with _
# in dictionaries keys
# in order to save them in mongo
示例10: key_list_clean
# 需要導入模塊: import json [as 別名]
# 或者: from json import keys [as 別名]
def key_list_clean(json):
if json is None:
return None
array = []
for key in json.keys():
tmp_dict = {}
tmp_dict["name"] = key
tmp_dict["values"] = json.get(key)
array.append(tmp_dict)
return array
示例11: cursor_to_dict
# 需要導入模塊: import json [as 別名]
# 或者: from json import keys [as 別名]
def cursor_to_dict(f1, retrieve):
results = []
for f in f1:
results.append(f)
ret = []
for a in results:
dic = {}
for key in retrieve.keys():
steps = key.split('.')
partial_res = a
for step in steps:
partial_res = partial_res.get(step)
if partial_res is None:
break
if isinstance(partial_res, list):
partial_res = None
break
legend_to_show = key.split('.')[-1]
if (legend_to_show == "file_id"):
legend_to_show = "sha1"
if (legend_to_show == "TimeDateStamp" and partial_res is not None):
partial_res = time.strftime(
"%Y-%m-%d %H:%M:%S", time.gmtime(int(eval(partial_res), 16)))
if (legend_to_show == "timeDateStamp" and partial_res is not None):
partial_res = time.strftime(
"%Y-%m-%d %H:%M:%S", time.gmtime(partial_res))
dic[legend_to_show] = partial_res
ret.append(dic)
return ret
# ****************TEST_CODE******************
示例12: fromJsonFragment
# 需要導入模塊: import json [as 別名]
# 或者: from json import keys [as 別名]
def fromJsonFragment(json, nameFromParent):
if isinstance(json, dict) and hasKeys(json.keys(), ["entries", "sub:type", "numerator", "denominator"], ["name", "sub:name"]):
if json["entries"] in ("nan", "inf", "-inf") or isinstance(json["entries"], numbers.Real):
entries = float(json["entries"])
else:
raise JsonFormatException(json, "Fraction.entries")
if isinstance(json.get("name", None), basestring):
name = json["name"]
elif json.get("name", None) is None:
name = None
else:
raise JsonFormatException(json["name"], "Fraction.name")
if isinstance(json["sub:type"], basestring):
factory = Factory.registered[json["sub:type"]]
else:
raise JsonFormatException(json, "Fraction.type")
if isinstance(json.get("sub:name", None), basestring):
subName = json["sub:name"]
elif json.get("sub:name", None) is None:
subName = None
else:
raise JsonFormatException(json["sub:name"], "Fraction.sub:name")
numerator = factory.fromJsonFragment(json["numerator"], subName)
denominator = factory.fromJsonFragment(json["denominator"], subName)
out = Fraction.ed(entries, numerator, denominator)
out.quantity.name = nameFromParent if name is None else name
return out.specialize()
else:
raise JsonFormatException(json, "Fraction")
示例13: fromJsonFragment
# 需要導入模塊: import json [as 別名]
# 或者: from json import keys [as 別名]
def fromJsonFragment(json, nameFromParent):
if isinstance(json, dict) and hasKeys(json.keys(), ["entries", "mean", "variance"], ["name"]):
if json["entries"] in ("nan", "inf", "-inf") or isinstance(json["entries"], numbers.Real):
entries = float(json["entries"])
else:
raise JsonFormatException(json["entries"], "Deviate.entries")
if isinstance(json.get("name", None), basestring):
name = json["name"]
elif json.get("name", None) is None:
name = None
else:
raise JsonFormatException(json["name"], "Deviate.name")
if json["mean"] in ("nan", "inf", "-inf") or isinstance(json["mean"], numbers.Real):
mean = float(json["mean"])
else:
raise JsonFormatException(json["mean"], "Deviate.mean")
if json["variance"] in ("nan", "inf", "-inf") or isinstance(json["variance"], numbers.Real):
variance = float(json["variance"])
else:
raise JsonFormatException(json["variance"], "Deviate.variance")
out = Deviate.ed(entries, mean, variance)
out.quantity.name = nameFromParent if name is None else name
return out.specialize()
else:
raise JsonFormatException(json, "Deviate")
示例14: fromJsonFragment
# 需要導入模塊: import json [as 別名]
# 或者: from json import keys [as 別名]
def fromJsonFragment(json, nameFromParent):
if isinstance(json, dict) and hasKeys(json.keys(), ["entries", "sub:type", "data"], ["name"]):
if json["entries"] in ("nan", "inf", "-inf") or isinstance(json["entries"], numbers.Real):
entries = float(json["entries"])
else:
raise JsonFormatException(json, "Select.entries")
if isinstance(json.get("name", None), basestring):
name = json["name"]
elif json.get("name", None) is None:
name = None
else:
raise JsonFormatException(json["name"], "Select.name")
if isinstance(json["sub:type"], basestring):
factory = Factory.registered[json["sub:type"]]
else:
raise JsonFormatException(json, "Select.type")
cut = factory.fromJsonFragment(json["data"], None)
out = Select.ed(entries, cut)
out.quantity.name = nameFromParent if name is None else name
return out.specialize()
else:
raise JsonFormatException(json, "Select")
示例15: __init__
# 需要導入模塊: import json [as 別名]
# 或者: from json import keys [as 別名]
def __init__(self, **pairs):
"""Create a Label that is capable of being filled and added.
Parameters:
pairs (list of str, :doc:`Container <histogrammar.defs.Container>` pairs): the collection of aggregators to fill.
Other Parameters:
entries (float): the number of entries, initially 0.0.
"""
if not all(isinstance(k, basestring) and isinstance(v, Container) for k, v in pairs.items()):
raise TypeError("pairs ({0}) must be a dict from strings to Containers".format(pairs))
if any(not isinstance(x, basestring) for x in pairs.keys()):
raise ValueError("all Label keys must be strings")
if len(pairs) < 1:
raise ValueError("at least one pair required")
contentType = list(pairs.values())[0].name
if any(x.name != contentType for x in pairs.values()):
raise ContainerException("all Label values must have the same type")
if contentType == "Bag":
rangeType = list(pairs.values())[0].range
if any(x.range != rangeType for x in pairs.values()):
raise ContainerException("all Label values must have the same type")
self.entries = 0.0
self.pairs = pairs
super(Label, self).__init__()
self.specialize()