У меня есть упоминание об открытом API в ссылке ниже
https://npiregistry.cms.hhs.gov/api/?version=2.1
Используя приведенный ниже запрос, даже если детали во входном файле совпадают, я не получаю NPI на выходе. Может ли кто-нибудь помочь мне изменить запрос?
Входные данные:
S Номер|название_организации|город|штат|Основной адрес
1|saint|mishawaka|in| 201 linc
Запрос:
запросы на импорт
импорт панд как pd
из файлов импорта google.colab
импортировать csv
набрав import List, Dict
def search_nppes(название_организации, город, штат, основной_адрес) -> List[Dict]:
"""
Выполните поиск совпадений с помощью NPPES API по названию организации, городу, штату и частичному совпадению основного адреса.
Returns:
List[Dict]: List of dictionaries containing the NPPES data for each matching record
"""
base_url = "https://npiregistry.cms.hhs.gov/api/"
params = {
"version": "2.1",
"organization_name": organization_name,
"enumeration_type": 2,
"city": city,
"state": state,
"limit": 100
}
response = requests.get(base_url, params=params)
if response.status_code == 200:
data = response.json()
if 'results' in data and data['results']:
results = []
for result in data['results']:
practice_location = f"{result['addresses'][0]['address_1']}, {result['addresses'][0]['city']}, {result['addresses'][0]['state']}"
if primary_address.lower()[:5] in practice_location.lower():
if (result['basic']['organization_name'].lower() == organization_name.lower() and
result['addresses'][0]['city'].lower() == city.lower() and
result['addresses'][0]['state'].lower() == state.lower()):
results.append({
'npi': result['number'],
'organization_name': result['basic']['organization_name'],
'taxonomy': result['taxonomies'][0]['desc'] if result['taxonomies'] else '',
'address': practice_location
})
return results
return []
uploaded = files.upload()
input_filename = list(uploaded.keys())[0]
с open(input_filename, 'r') как csvfile:
dialect = csv.Sniffer( ).sniff(csvfile.read(1024))
delimiter = диалект.delimiter
df = pd.read_csv(input_filename, sep=delimiter)
required_columns = ['S No', 'organization_name ', 'город', 'штат', 'Основной адрес']
missing_columns = [столбец для столбца в требуемых_столбцах, если столбца нет в df.columns]
if Missing_columns:
print(f" Ошибка: в вашем CSV-файле отсутствуют следующие обязательные столбцы: {', '.join(missing_columns)}")
print(f"Ваш CSV-файл содержит следующие столбцы: {', '.join(df.columns) }")
print("Убедитесь, что в вашем CSV-файле есть столбцы «S No», «first_name», «last_name», «city», «state» и «основной адрес».)
else:
print(f"CSV успешно загружен с разделителем: '{delimiter}'")
print(f"Найдены столбцы: {', '.join(df.columns)}")< /p>
results = []
for index, row in df.iterrows():
s_no = row['S No']
primary_address = row['Primary Address']
search_results = search_nppes(row['organization_name'], row['city'], row['state'], primary_address)
if search_results:
for result in search_results:
result['S No'] = s_no
results.append(result)
if (index + 1) % 10 == 0:
print(f"Processed {index + 1} entries...")
output_df = pd.DataFrame(results)
output_filename = 'nppes_search_results.csv'
output_df.to_csv(output_filename, index=False)
print(f"Results saved to {output_filename}")
files.download(output_filename)
Подробнее здесь: https://stackoverflow.com/questions/791 ... input-file
Извлеките NPI организации на основе данных, представленных во входном файле. ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Размещать запросы или сумма данных, представленных в запросе, превышает предел емкости
Anonymous » » в форуме Php - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Размещать запросы или сумма данных, представленных в запросе, превышает предел емкости
Anonymous » » в форуме Php - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-