def _get_value(self, json_data, key, default="", convert=True): """ 这里的key应该是规则的key """ value = default if key in json_data: value = json_data[key] elif key in self.reverse_key_map: for alias_key in self.reverse_key_map[key]: if alias_key in json_data: value = json_data[alias_key] match_key = alias_key break ret = Utils.format_value(value, convert) #余下,可以针对特定key的value,做一些归一化处理 if key == "release_date": if type(ret) is not list: ret = ret.replace("00:00:00", "") ret = Utils.format_datetime(ret) else: if len(ret) == 0: return "" ret[0] = ret[0].replace("00:00:00", "") ret[0] = Utils.format_datetime(ret[0]) return ret
def _transform_scielo(self, json_data): if type(json_data["date"]) is list: tmp = " ".join(json_data["date"]) else: tmp = json_data["date"] dates = tmp.encode("utf-8").replace("\xa0", " ").replace("\xc2", " ").replace( ".", "").split() if len(dates) == 1: date = dates[0] else: try: date = Utils.format_datetime(" ".join(dates[-2:])) except Exception: try: date = Utils.format_datetime(" ".join(dates[-3:])) except Exception: date = "%s-08-01" % dates[-1] json_data["release_date"] = date return json_data