def product_or_service_information_values(data, obj):
    ' Get values from the productOrServiceInformation level of the xml '
    value_map = {'claimantProgramCode': 'dod_claimant_program_code', 'contractBundling': 'contract_bundling', 'countryOfOrigin': 'country_of_product_or_serv', 'informationTechnologyCommercialItemCategory': 'information_technology_com', 'manufacturingOrganizationType': 'domestic_or_foreign_entity', 'placeOfManufacture': 'place_of_manufacture', 'principalNAICSCode': 'naics', 'productOrServiceCode': 'product_or_service_code', 'recoveredMaterialClauses': 'recovered_materials_sustai', 'systemEquipmentCode': 'program_system_or_equipmen', 'useOfEPADesignatedProducts': 'epa_designated_product'}
    for (key, value) in value_map.items():
        try:
            obj[value] = extract_text(data[key])
        except (KeyError, TypeError):
            obj[value] = None
    value_map = {'claimantProgramCode': 'dod_claimant_prog_cod_desc', 'contractBundling': 'contract_bundling_descrip', 'informationTechnologyCommercialItemCategory': 'information_technolog_desc', 'manufacturingOrganizationType': 'domestic_or_foreign_e_desc', 'placeOfManufacture': 'place_of_manufacture_desc', 'principalNAICSCode': 'naics_description', 'productOrServiceCode': 'product_or_service_co_desc', 'recoveredMaterialClauses': 'recovered_materials_s_desc', 'systemEquipmentCode': 'program_system_or_equ_desc', 'useOfEPADesignatedProducts': 'epa_designated_produc_desc'}
    for (key, value) in value_map.items():
        try:
            obj[value] = extract_text(data[key]['@description'])
        except (KeyError, TypeError):
            obj[value] = None
    try:
        obj['country_of_product_or_desc'] = extract_text(data['countryOfOrigin']['@name'])
    except (KeyError, TypeError):
        obj['country_of_product_or_desc'] = None
    return obj
Get values from the productOrServiceInformation level of the xml
def product_or_service_information_values(data, obj):
    '  '
    value_map = {'claimantProgramCode': 'dod_claimant_program_code', 'contractBundling': 'contract_bundling', 'countryOfOrigin': 'country_of_product_or_serv', 'informationTechnologyCommercialItemCategory': 'information_technology_com', 'manufacturingOrganizationType': 'domestic_or_foreign_entity', 'placeOfManufacture': 'place_of_manufacture', 'principalNAICSCode': 'naics', 'productOrServiceCode': 'product_or_service_code', 'recoveredMaterialClauses': 'recovered_materials_sustai', 'systemEquipmentCode': 'program_system_or_equipmen', 'useOfEPADesignatedProducts': 'epa_designated_product'}
    for (key, value) in value_map.items():
        try:
            obj[value] = extract_text(data[key])
        except (KeyError, TypeError):
            obj[value] = None
    value_map = {'claimantProgramCode': 'dod_claimant_prog_cod_desc', 'contractBundling': 'contract_bundling_descrip', 'informationTechnologyCommercialItemCategory': 'information_technolog_desc', 'manufacturingOrganizationType': 'domestic_or_foreign_e_desc', 'placeOfManufacture': 'place_of_manufacture_desc', 'principalNAICSCode': 'naics_description', 'productOrServiceCode': 'product_or_service_co_desc', 'recoveredMaterialClauses': 'recovered_materials_s_desc', 'systemEquipmentCode': 'program_system_or_equ_desc', 'useOfEPADesignatedProducts': 'epa_designated_produc_desc'}
    for (key, value) in value_map.items():
        try:
            obj[value] = extract_text(data[key]['@description'])
        except (KeyError, TypeError):
            obj[value] = None
    try:
        obj['country_of_product_or_desc'] = extract_text(data['countryOfOrigin']['@name'])
    except (KeyError, TypeError):
        obj['country_of_product_or_desc'] = None
    return obj