def api_connection(n): ''' Connect to API and download datafile and attachments Parameters: n(int): a whole number Returns: DataFrame: Pandas Dataframe with downloaded data from API Outputs: attachment: attachments from API ''' from sodapy import Socrata client = Socrata("data.cms.gov", None) results = client.get('efgi-jnkv', select='hcpcs_cd,' 'psps_submitted_charge_amt,' 'hcpcs_initial_modifier_cd,' 'hcpcs_second_modifier_cd,' 'carrier_num,' 'pricing_locality_cd,' 'type_of_service_cd,' 'place_of_service_cd,' 'provider_spec_cd,' 'psps_submitted_service_cnt,' 'psps_denied_services_cnt,' 'hcpcs_betos_cd', where='psps_submitted_charge_amt > 5', limit=n) results_sample = pd.DataFrame.from_records(results) #download attachments client.download_attachments( "efgi-jnkv", download_dir='C:/Users/amcgrat/Desktop/UCD PROGRAM/Project/HPCPS') client.close() return results_sample
def test_get_metadata_and_attachments(): mock_adapter = {} mock_adapter["prefix"] = PREFIX adapter = requests_mock.Adapter() mock_adapter["adapter"] = adapter client = Socrata(DOMAIN, APPTOKEN, session_adapter=mock_adapter) response_data = "get_song_metadata.txt" setup_old_api_mock(adapter, "GET", response_data, 200) response = client.get_metadata(DATASET_IDENTIFIER) assert isinstance(response, dict) assert "newBackend" in response assert "attachments" in response["metadata"] response = client.download_attachments(DATASET_IDENTIFIER) assert isinstance(response, list) assert len(response) == 0 client.close()
'psps_submitted_charge_amt,' 'hcpcs_initial_modifier_cd,' 'hcpcs_second_modifier_cd,' 'carrier_num,' 'pricing_locality_cd,' 'type_of_service_cd,' 'place_of_service_cd,' 'provider_spec_cd,' 'psps_submitted_service_cnt,' 'psps_denied_services_cnt,' 'psps_hcpcs_asc_ind_cd,' 'hcpcs_betos_cd', where='psps_submitted_charge_amt > 5', limit=3400000) results_df_sample = pd.DataFrame.from_records(results) client.download_attachments("efgi-jnkv", download_dir="~/Desktop") client.close() results_df_sample = results_df_sample.sample(frac=0.25, random_state=123) results_df_sample['hcpcs_cd'] = results_df_sample.hcpcs_cd.str.pad( 5, side='left', fillchar='0') #join dataframe to code categories dataframe. results_df_sample = pd.merge(results_df_sample, hcpcs_cs_cat, on=['hcpcs_cd'], how='left') #Replace nulls in denied services count with zero. results_df_sample['psps_denied_services_cnt'].replace(np.NaN,