Api dadata ИНН
Запрос через Api с помощью ИНН реквизиты компании. Результат в буфер обменаuser_2065311
python
2 years ago
3.5 kB
14
Indexable
// write your code import requests
import pyperclip
import tkinter as tk
from tkinter import filedialog
# Функция для получения данных из файла
def get_data_from_file(file_path):
with open(file_path, 'r') as file:
return file.read().splitlines()
# Функция для получения данных из буфера обмена
def get_data_from_clipboard():
return pyperclip.paste().splitlines()
# Функция для отправки запросов в DaData
def query_dadata(inns, token):
url = "https://suggestions.dadata.ru/suggestions/api/4_1/rs/findById/party"
headers = {
"Authorization": "Token " + token,
"Content-Type": "application/json"
}
results = []
for inn in inns:
response = requests.post(url, headers=headers, json={"query": inn})
if response.status_code == 200:
results.append(response.json())
else:
results.append({"error": "Request failed with status code " + str(response.status_code)})
return results
# Функция для форматирования результатов в читаемый вид
def format_results(results):
formatted_text = "ИНН | Наименование | КПП | ОГРН | Адрес | Статус | Дата регистрации | Руководитель\n"
formatted_text += "--- | --- | --- | --- | --- | --- | --- | ---\n"
for result in results:
if 'suggestions' in result and result['suggestions']:
suggestion = result['suggestions'][0]
data = suggestion['data']
inn = data.get('inn', '')
name = data.get('name', {}).get('full_with_opf', '')
kpp = data.get('kpp', '')
ogrn = data.get('ogrn', '')
address = data.get('address', {}).get('unrestricted_value', '')
status = data.get('state', {}).get('status', '')
registration_date = data.get('state', {}).get('registration_date', '')
management_name = data.get('management', {}).get('name', '')
formatted_text += f"{inn} | {name} | {kpp} | {ogrn} | {address} | {status} | {registration_date} | {management_name}\n"
else:
formatted_text += "Ошибка запроса или данные отсутствуют\n"
return formatted_text
# Функция для сохранения результатов в буфер обмена
def save_results_to_clipboard(results):
formatted_results = format_results(results)
pyperclip.copy(formatted_results)
# Основная логика скрипта
def main():
token = "тут вставляем ключ API"
# Выбор источника данных
data_source = input("Введите 'file' для выбора файла или 'clipboard' для использования буфера обмена: ")
if data_source == 'file':
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename()
inns = get_data_from_file(file_path)
else:
inns = get_data_from_clipboard()
# Отправка запросов и получение результатов
results = query_dadata(inns, token)
# Сохранение результатов в буфер обмена
save_results_to_clipboard(results)
print("Результаты сохранены в буфер обмена.")
if __name__ == "__main__":
main()
Editor is loading...