code: def any2sha1(text):
      
      # canonicalize json object or json array
      if type(text) in [dict, list]:
          text = json.dumps(text, sort_keys=True)
  
      # assert question as utf8
      if isinstance(text, unicode):
          text = text.encode('utf-8')
  
      return hashlib.sha1(text).hexdigest()
docs: convert a string into sha1hash. For json object/array, first convert
          it into canonical json string.