本文整理汇总了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()