本文整理汇总了Python中transforms.loads函数的典型用法代码示例。如果您正苦于以下问题:Python loads函数的具体用法?Python loads怎么用?Python loads使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了loads函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _update_global_profile_attributes
def _update_global_profile_attributes(
cls,
profile,
email=None,
legal_name=None,
nick_name=None,
date_of_birth=None,
is_enrolled=None,
final_grade=None,
course_info=None,
):
"""Modifies various attributes of Student's Global Profile."""
# TODO(psimakov): update of email does not work for student
if email is not None:
profile.email = email
if legal_name is not None:
profile.legal_name = legal_name
if nick_name is not None:
profile.nick_name = nick_name
if date_of_birth is not None:
profile.date_of_birth = date_of_birth
if not (is_enrolled is None and final_grade is None and course_info is None):
# Defer to avoid circular import.
# pylint: disable-msg=g-import-not-at-top
from controllers import sites
course = sites.get_course_for_current_request()
course_namespace = course.get_namespace_name()
if is_enrolled is not None:
enrollment_dict = transforms.loads(profile.enrollment_info)
enrollment_dict[course_namespace] = is_enrolled
profile.enrollment_info = transforms.dumps(enrollment_dict)
if final_grade is not None or course_info is not None:
course_info_dict = {}
if profile.course_info:
course_info_dict = transforms.loads(profile.course_info)
if course_namespace in course_info_dict.keys():
info = course_info_dict[course_namespace]
else:
info = {}
if final_grade:
info["final_grade"] = final_grade
if course_info:
info["info"] = course_info
course_info_dict[course_namespace] = info
profile.course_info = transforms.dumps(course_info_dict)
示例2: get_all_scores
def get_all_scores(self, student):
"""Gets all score data for a student.
Args:
student: the student whose scores should be retrieved.
Returns:
an array of dicts, each representing an assessment. Each dict has
the keys 'id', 'title', 'weight' and 'score' (if available),
representing the unit id, the assessment title, the weight
contributed by the assessment to the final score, and the
assessment score.
"""
assessment_list = self.get_assessment_list()
scores = transforms.loads(student.scores) if student.scores else {}
assessment_score_list = []
for unit in assessment_list:
# Compute the weight for this assessment.
weight = 0
if hasattr(unit, 'weight'):
weight = unit.weight
elif unit.unit_id in DEFAULT_LEGACY_ASSESSMENT_WEIGHTS:
weight = DEFAULT_LEGACY_ASSESSMENT_WEIGHTS[unit.unit_id]
assessment_score_list.append({
'id': str(unit.unit_id),
'title': unit.title,
'weight': weight,
'score': (scores[str(unit.unit_id)]
if str(unit.unit_id) in scores else 0),
})
return assessment_score_list
示例3: deserialize
def deserialize(self, binary_data):
"""Loads instance from a JSON representation."""
json_text = binary_data.decode('utf-8')
adict = transforms.loads(json_text)
if not self.version == adict.get('version'):
raise Exception('Expected version %s, found %s.' % (
self.version, adict.get('version')))
self._from_dict(adict)
示例4: get_status_url
def get_status_url(job, namespace, xsrf_token):
if not job.output:
return None
content = transforms.loads(job.output)
pipeline_id = content[MapReduceJob._OUTPUT_KEY_ROOT_PIPELINE_ID]
return ('/mapreduce/ui/pipeline/status?' +
urllib.urlencode({'root': pipeline_id,
'namespace': namespace,
'xsrf_token': xsrf_token}))
示例5: filter
def filter(self, fun=None):
if not fun:
fun = lambda x: True
try:
with io.open(self.filename, "r") as f:
for line in f:
meta, raw, comment = self.parse_line(line)
if not meta:
continue
if fun(meta):
yield (meta, transforms.loads(raw))
except IOError:
pass
示例6: _add_new_student_for_current_user
def _add_new_student_for_current_user(
cls, user_id, email, nick_name, additional_fields):
"""Create new or re-enroll old student."""
# create profile if does not exist
profile = cls._get_profile_by_user_id(user_id)
if not profile:
profile = cls._add_new_profile(user_id, email)
# create new student or re-enroll existing
student = Student.get_by_email(email)
if not student:
# TODO(psimakov): we must move to user_id as a key
student = Student(key_name=email)
# update profile
cls._update_attributes(
profile, student, nick_name=nick_name, is_enrolled=True)
# update student
student.user_id = user_id
student.additional_fields = additional_fields
# CGL-MOOC-Builder starts: additional data fields for a student
additional_data = transforms.loads(additional_fields)
for st in additional_data:
if st[0] == 'age':
student.age = st[1]
elif st[0] == 'city':
student.city = st[1]
elif st[0] == 'state':
student.state = st[1]
elif st[0] == 'country':
student.country = st[1]
elif st[0] == 'education':
student.education = st[1]
elif st[0] == 'profession':
student.profession = st[1]
elif st[0] == 'organization':
student.organization = st[1]
elif st[0] == 'motivation':
student.motivation = st[1]
elif st[0] == 'referral':
student.referral = st[1]
elif st[0] == 'privacy':
student.privacy = st[1]
# CGL-MOOC-Builder ends
# put both
cls._put_profile(profile)
student.put()
示例7: get_info
def get_info(cls, student, unit_id):
info_ent = StudentPropertyEntity.get(student,
cls.info_tmpl % unit_id)
if not info_ent:
return {
'tries_left': TRIES_ALLOWED_ON_EXAMS.value,
'start_time': None,
}
info = transforms.loads(info_ent.value)
if info['start_time']:
info['start_time'] = datetime.datetime.strptime(
info['start_time'],
cls.timestamp_format)
return info
示例8: set_answer
def set_answer(answers, assessment_name, answer):
"""Stores the answer array for the given student and assessment.
The caller must call answers.put() to commit.
This does not do any type-checking on 'answer'; it just stores whatever
is passed in.
Args:
answers: the StudentAnswers entity in which the answer should be stored.
assessment_name: the name of the assessment.
answer: an array containing the student's answers.
"""
if not answers.data:
score_dict = {}
else:
score_dict = transforms.loads(answers.data)
score_dict[assessment_name] = answer
answers.data = transforms.dumps(score_dict)
示例9: _set_entity_value
def _set_entity_value(self, student_property, key, value):
"""Sets the integer value of a student property.
Note: this method does not commit the change. The calling method should
call put() on the StudentPropertyEntity.
Args:
student_property: the StudentPropertyEntity
key: the student property whose value should be incremented
value: the value to increment this property by
"""
try:
progress_dict = transforms.loads(student_property.value)
except (AttributeError, TypeError):
progress_dict = {}
progress_dict[key] = value
student_property.value = transforms.dumps(progress_dict)
示例10: set_score
def set_score(student, assessment_name, score):
"""Stores the score for the given student and assessment.
The caller must call student.put() to commit.
This does not do any type-checking on 'score'; it just stores whatever
is passed in.
Args:
student: the student whose answer should be stored.
assessment_name: the name of the assessment.
score: the student's score.
"""
if not student.scores:
score_dict = {}
else:
score_dict = transforms.loads(student.scores)
score_dict[assessment_name] = score
student.scores = transforms.dumps(score_dict)
示例11: get_reviews_by_keys
def get_reviews_by_keys(
self, unit_id, review_keys, handle_empty_keys=False):
"""Gets a list of reviews, given their review keys.
If handle_empty_keys is True, then no error is thrown on supplied keys
that are None; the elements in the result list corresponding to those
keys simply return None. This usually arises when this method is called
immediately after get_review_steps_by_keys().
Args:
unit_id: string. Id of the unit to get the reviews for.
review_keys: [db.Key of peer.ReviewStep]. May include None, if
handle_empty_keys is True.
handle_empty_keys: if True, the return value contains None for keys
that are None. If False, the method throws if empty keys are
supplied.
Returns:
List with the same number of elements as review_keys. It contains:
- the JSON-decoded contents of the review corresponding to that
review_key, or
- None if either:
- no review has been submitted for that review key, or
- handle_empty_keys == True and the review_key is None.
"""
impl = self._get_impl(unit_id)
reviews = []
if not handle_empty_keys:
reviews = impl.get_reviews_by_keys(review_keys)
else:
nonempty_review_indices = []
nonempty_review_keys = []
for idx, review_key in enumerate(review_keys):
if review_key is not None:
nonempty_review_indices.append(idx)
nonempty_review_keys.append(review_key)
tmp_reviews = impl.get_reviews_by_keys(nonempty_review_keys)
reviews = [None] * len(review_keys)
for (i, idx) in enumerate(nonempty_review_indices):
reviews[idx] = tmp_reviews[i]
return [(transforms.loads(rev.contents) if rev else None)
for rev in reviews]
示例12: get_error_message
def get_error_message(job):
if not job.output:
return None
content = transforms.loads(job.output)
return content[MapReduceJob._OUTPUT_KEY_ERROR]
示例13: get_results
def get_results(job):
if not job.output:
return None
content = transforms.loads(job.output)
return content[MapReduceJob._OUTPUT_KEY_RESULTS]
示例14: get_root_pipeline_id
def get_root_pipeline_id(job):
if not job or not job.output:
return None
content = transforms.loads(job.output)
return content[MapReduceJob._OUTPUT_KEY_ROOT_PIPELINE_ID]
示例15: get_contents_by_key
def get_contents_by_key(cls, submission_key):
"""Returns the contents of a submission, given a db.Key."""
submission = entities.get(submission_key)
return transforms.loads(submission.contents) if submission else None