التكرار من خلال واجهة برمجة التطبيقات باستخدام قائمة الأسماء من ملف CSV

0

( لقد قمت بتحديث الكود الخاص بي. يبدو أن هذا يحصل على جميع الصفوف ، ولكن هل هذه هي الطريقة الأكثر فعالية للقيام بذلك ، أو هل هناك طريقة أفضل للتكرار من خلال؟)

أحاول التكرار من خلال واجهة برمجة التطبيقات باستخدام قائمة الأسماء في ملف CSV. الآن أنا مضطر إلى ترميز الاسم الثابت في واجهة برمجة التطبيقات للحصول على البيانات التي أريدها لكل "مقاتل". أرغب في أتمتة هذه العملية ، حتى أتمكن من تشغيل هذا الرمز ، وسيبحث عن كل اسم مدرج في ملف csv الخاص بي ويملأ واجهة برمجة التطبيقات بكل اسم ، ثم يجمع الرمز ثم أقوم بتخزينه في قائمة. هذا هو الرمز الذي لدي حتى الآن.

from bs4 import BeautifulSoup
import pandas as pd
import requests, re
from urllib.parse import urljoin
import csv

workbook = open('MMA Fighter Names.csv')
reader = csv.reader(workbook)
api = 'https://mma.now.sh/?fighter={}'

for row in reader:
    r = requests.get(api.format(row))
    data = r.json()

    name = data['name']
    nickname = data['nickname']
    fullName = data['fullname']
    record = data['record']
    association = data['association']
    age = data['age']
    birthday = data['birthday']
    hometown = data['hometown']
    nationality = data['nationality']
    location = data['location']
    height = data['height']
    height_cm = data['height_cm']
    weight = data['weight']
    weight_kg = data['weight_kg']
    weight_class = data['weight_class']
    college = data['college']
    degree = data['degree']
    summary = data['summary']

    print(name)

"المصنف" هو ملف csv الخاص بي و "api" هو ارتباط api الخاص بي. يمكنك أن ترى الجزء الأخير من واجهة برمجة التطبيقات التي قمت بترميزها بإسم "مقاتل = دانيال كورمير". أود تغيير هذا الجزء إلى قائمة {} ثم ملؤه بالأسماء في ملف csv الخاص بي ، بينما يجمع كل البيانات لكل مقاتل.

من هناك يمكنني كتابة الرمز لتخزين البيانات.

نقدر اي مساعدة

شكرا جزيلا.

1 إجابة

1
افضل جواب

سيعمل هذا بشكل جيد مع وظيفة أو فئة ، أنا أستخدم وظيفة من أجل البساطة.

def gatherdata(fighter_name):

    api = 'https://mma.now.sh/?fighter={0}'.format(fighter_name)

    r = requests.get(api)
    data = r.json()

    name = data['name']
    nickname = data['nickname']
    fullName = data['fullname']
    record = data['record']
    association = data['association']
    age = data['age']
    birthday = data['birthday']
    hometown = data['hometown']
    nationality = data['nationality']
    location = data['location']
    height = data['height']
    height_cm = data['height_cm']
    weight = data['weight']
    weight_kg = data['weight_kg']
    weight_class = data['weight_class']
    college = data['college']
    degree = data['degree']
    summary = data['summary']

    print(name)


#Get all Fighters from the csv into this list
fighters = []

for fighter_name in fighters:
    gatherdata(fighter_name)
:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام