How to write Apify python print to excel

39 views Asked by At

I am trying to add excel to this script

from apify_client import ApifyClient

# Initialize the ApifyClient with your API token
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the actor input
run_input = {
    "location": "New York",
    "maxCrawledPlacesPerSearch": 10,
}

# Run the actor and wait for it to finish
run = client.actor("natasha.lekh/gas-prices-scraper").call(run_input=run_input)

# Fetch and print actor results from the run's dataset (if there are any)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

The print looks like this (for one item, there's 25. I'm fine if it all goes into one cell for each as I will sort it out in FME I just need a copy of the data somewhere I can touch.

{'url': 'https://www.google.com/maps/place/Shell/@33.9106555,-84.37924,17z/data=!3m1!4b1!4m6!3m5!1s0x88f50eeb98922217:0x9ba6e71e336be14f!8m2!3d33.9106555!4d-84.37924!16s%2Fg%2F1w456fyc?hl=en&entry=ttu', 'searchString': 'gas station in Sandy Springs', 'rank': 1, 'searchPageUrl': 'https://www.google.com/maps/search/gas%20station%20in%20Sandy%20Springs?hl=en', 'searchPageLoadedUrl': 'https://www.google.com/maps/search/gas+station+in+Sandy+Springs/@33.9434002,-84.3883655,13z/data=!3m1!4b1?hl=en&entry=ttu', 'isAdvertisement': False, 'title': 'Shell', 'description': None, 'price': '$$', 'categoryName': 'Gas station', 'address': '5700 Roswell Rd NE, Sandy Springs, GA 30342', 'neighborhood': '5700 Roswell Rd NE', 'street': '5700 Roswell Rd NE', 'city': 'Sandy Springs', 'postalCode': '30342', 'state': 'Georgia', 'countryCode': 'US', 'website': 'https://find.shell.com/us/fuel/10000514-5700-roswell-rd', 'phone': '(404) 255-8572', 'phoneUnformatted': '+14042558572', 'claimThisBusiness': False, 'location': {'lat': 33.9106555, 'lng': -84.37924}, 'locatedIn': None, 'plusCode': 'WJ6C+78 Sandy Springs, Georgia', 'menu': None, 'totalScore': 2.4, 'permanentlyClosed': False, 'temporarilyClosed': False, 'placeId': 'ChIJFyKSmOsO9YgRT-FrMx7npps', 'categories': ['Gas station', 'ATM', 'Car wash', 'Manufacturer'], 'cid': '11215906038910542159', 'reviewsCount': 13, 'reviewsDistribution': {'oneStar': 6, 'twoStar': 1, 'threeStar': 3, 'fourStar': 1, 'fiveStar': 2}, 'imagesCount': 4, 'scrapedAt': '2023-05-26T13:07:50.888Z', 'reserveTableUrl': None, 'googleFoodUrl': None, 'hotelStars': None, 'hotelDescription': None, 'checkInDate': None, 'checkOutDate': None, 'similarHotelsNearby': None, 'popularTimesLiveText': 'As busy as it gets', 'popularTimesLivePercent': 92, 'popularTimesHistogram': {'Su': [{'hour': 4, 'occupancyPercent': 1}, {'hour': 5, 'occupancyPercent': 1}, {'hour': 6, 'occupancyPercent': 1}, {'hour': 7, 'occupancyPercent': 3}, {'hour': 8, 'occupancyPercent': 16}, {'hour': 9, 'occupancyPercent': 36}, {'hour': 10, 'occupancyPercent': 61}, {'hour': 11, 'occupancyPercent': 85}, {'hour': 12, 'occupancyPercent': 98}, {'hour': 13, 'occupancyPercent': 100}, {'hour': 14, 'occupancyPercent': 92}, {'hour': 15, 'occupancyPercent': 83}, {'hour': 16, 'occupancyPercent': 77}, {'hour': 17, 'occupancyPercent': 74}, {'hour': 18, 'occupancyPercent': 69}, {'hour': 19, 'occupancyPercent': 62}, {'hour': 20, 'occupancyPercent': 50}, {'hour': 21, 'occupancyPercent': 35}, {'hour': 22, 'occupancyPercent': 21}, {'hour': 23, 'occupancyPercent': 9}, {'hour': 0, 'occupancyPercent': 1}, {'hour': 1, 'occupancyPercent': 1}, {'hour': 2, 'occupancyPercent': 1}, {'hour': 3, 'occupancyPercent': 1}], 'Mo': [{'hour': 4, 'occupancyPercent': 1}, {'hour': 5, 'occupancyPercent': 1}, {'hour': 6, 'occupancyPercent': 10}, {'hour': 7, 'occupancyPercent': 38}, {'hour': 8, 'occupancyPercent': 52}, {'hour': 9, 'occupancyPercent': 47}, {'hour': 10, 'occupancyPercent': 48}, {'hour': 11, 'occupancyPercent': 62}, {'hour': 12, 'occupancyPercent': 69}, {'hour': 13, 'occupancyPercent': 61}, {'hour': 14, 'occupancyPercent': 51}, {'hour': 15, 'occupancyPercent': 50}, {'hour': 16, 'occupancyPercent': 52}, {'hour': 17, 'occupancyPercent': 53}, {'hour': 18, 'occupancyPercent': 51}, {'hour': 19, 'occupancyPercent': 46}, {'hour': 20, 'occupancyPercent': 38}, {'hour': 21, 'occupancyPercent': 29}, {'hour': 22, 'occupancyPercent': 18}, {'hour': 23, 'occupancyPercent': 8}, {'hour': 0, 'occupancyPercent': 1}, {'hour': 1, 'occupancyPercent': 1}, {'hour': 2, 'occupancyPercent': 1}, {'hour': 3, 'occupancyPercent': 1}], 'Tu': [{'hour': 4, 'occupancyPercent': 1}, {'hour': 5, 'occupancyPercent': 1}, {'hour': 6, 'occupancyPercent': 19}, {'hour': 7, 'occupancyPercent': 49}, {'hour': 8, 'occupancyPercent': 51}, {'hour': 9, 'occupancyPercent': 34}, {'hour': 10, 'occupancyPercent': 31}, {'hour': 11, 'occupancyPercent': 41}, {'hour': 12, 'occupancyPercent': 47}, {'hour': 13, 'occupancyPercent': 45}, {'hour': 14, 'occupancyPercent': 41}, {'hour': 15, 'occupancyPercent': 42}, {'hour': 16, 'occupancyPercent': 45}, {'hour': 17, 'occupancyPercent': 49}, {'hour': 18, 'occupancyPercent': 49}, {'hour': 19, 'occupancyPercent': 45}, {'hour': 20, 'occupancyPercent': 38}, {'hour': 21, 'occupancyPercent': 29}, {'hour': 22, 'occupancyPercent': 18}, {'hour': 23, 'occupancyPercent': 8}, {'hour': 0, 'occupancyPercent': 1}, {'hour': 1, 'occupancyPercent': 1}, {'hour': 2, 'occupancyPercent': 1}, {'hour': 3, 'occupancyPercent': 1}], 'We': [{'hour': 4, 'occupancyPercent': 1}, {'hour': 5, 'occupancyPercent': 1}, {'hour': 6, 'occupancyPercent': 8}, {'hour': 7, 'occupancyPercent': 33}, {'hour': 8, 'occupancyPercent': 51}, {'hour': 9, 'occupancyPercent': 56}, {'hour': 10, 'occupancyPercent': 58}, {'hour': 11, 'occupancyPercent': 63}, {'hour': 12, 'occupancyPercent': 63}, {'hour': 13, 'occupancyPercent': 52}, {'hour': 14, 'occupancyPercent': 41}, {'hour': 15, 'occupancyPercent': 38}, {'hour': 16, 'occupancyPercent': 40}, {'hour': 17, 'occupancyPercent': 43}, {'hour': 18, 'occupancyPercent': 43}, {'hour': 19, 'occupancyPercent': 40}, {'hour': 20, 'occupancyPercent': 34}, {'hour': 21, 'occupancyPercent': 26}, {'hour': 22, 'occupancyPercent': 16}, {'hour': 23, 'occupancyPercent': 6}, {'hour': 0, 'occupancyPercent': 1}, {'hour': 1, 'occupancyPercent': 1}, {'hour': 2, 'occupancyPercent': 1}, {'hour': 3, 'occupancyPercent': 1}], 'Th': [{'hour': 4, 'occupancyPercent': 1}, {'hour': 5, 'occupancyPercent': 1}, {'hour': 6, 'occupancyPercent': 14}, {'hour': 7, 'occupancyPercent': 34}, {'hour': 8, 'occupancyPercent': 47}, {'hour': 9, 'occupancyPercent': 48}, {'hour': 10, 'occupancyPercent': 39}, {'hour': 11, 'occupancyPercent': 31}, {'hour': 12, 'occupancyPercent': 30}, {'hour': 13, 'occupancyPercent': 36}, {'hour': 14, 'occupancyPercent': 44}, {'hour': 15, 'occupancyPercent': 51}, {'hour': 16, 'occupancyPercent': 54}, {'hour': 17, 'occupancyPercent': 52}, {'hour': 18, 'occupancyPercent': 47}, {'hour': 19, 'occupancyPercent': 40}, {'hour': 20, 'occupancyPercent': 31}, {'hour': 21, 'occupancyPercent': 21}, {'hour': 22, 'occupancyPercent': 10}, {'hour': 23, 'occupancyPercent': 0}, {'hour': 0, 'occupancyPercent': 1}, {'hour': 1, 'occupancyPercent': 1}, {'hour': 2, 'occupancyPercent': 1}, {'hour': 3, 'occupancyPercent': 1}], 'Fr': [{'hour': 4, 'occupancyPercent': 1}, {'hour': 5, 'occupancyPercent': 1}, {'hour': 6, 'occupancyPercent': 6}, {'hour': 7, 'occupancyPercent': 28}, {'hour': 8, 'occupancyPercent': 49}, {'hour': 9, 'occupancyPercent': 58}, {'hour': 10, 'occupancyPercent': 53}, {'hour': 11, 'occupancyPercent': 42}, {'hour': 12, 'occupancyPercent': 35}, {'hour': 13, 'occupancyPercent': 35}, {'hour': 14, 'occupancyPercent': 41}, {'hour': 15, 'occupancyPercent': 48}, {'hour': 16, 'occupancyPercent': 54}, {'hour': 17, 'occupancyPercent': 56}, {'hour': 18, 'occupancyPercent': 55}, {'hour': 19, 'occupancyPercent': 50}, {'hour': 20, 'occupancyPercent': 42}, {'hour': 21, 'occupancyPercent': 32}, {'hour': 22, 'occupancyPercent': 22}, {'hour': 23, 'occupancyPercent': 12}, {'hour': 0, 'occupancyPercent': 11}, {'hour': 1, 'occupancyPercent': 23}, {'hour': 2, 'occupancyPercent': 28}, {'hour': 3, 'occupancyPercent': 8}], 'Sa': [{'hour': 4, 'occupancyPercent': 1}, {'hour': 5, 'occupancyPercent': 0}, {'hour': 6, 'occupancyPercent': 18}, {'hour': 7, 'occupancyPercent': 45}, {'hour': 8, 'occupancyPercent': 68}, {'hour': 9, 'occupancyPercent': 77}, {'hour': 10, 'occupancyPercent': 72}, {'hour': 11, 'occupancyPercent': 65}, {'hour': 12, 'occupancyPercent': 64}, {'hour': 13, 'occupancyPercent': 67}, {'hour': 14, 'occupancyPercent': 70}, {'hour': 15, 'occupancyPercent': 71}, {'hour': 16, 'occupancyPercent': 68}, {'hour': 17, 'occupancyPercent': 63}, {'hour': 18, 'occupancyPercent': 57}, {'hour': 19, 'occupancyPercent': 51}, {'hour': 20, 'occupancyPercent': 45}, {'hour': 21, 'occupancyPercent': 40}, {'hour': 22, 'occupancyPercent': 34}, {'hour': 23, 'occupancyPercent': 27}, {'hour': 0, 'occupancyPercent': 19}, {'hour': 1, 'occupancyPercent': 11}, {'hour': 2, 'occupancyPercent': 3}, {'hour': 3, 'occupancyPercent': 1}]}, 'openingHours': [{'day': 'Monday', 'hours': 'Open 24 hours'}, {'day': 'Tuesday', 'hours': 'Open 24 hours'}, {'day': 'Wednesday', 'hours': 'Open 24 hours'}, {'day': 'Thursday', 'hours': 'Open 24 hours'}, {'day': 'Friday', 'hours': 'Open 24 hours'}, {'day': 'Saturday', 'hours': 'Open 24 hours'}, {'day': 'Sunday', 'hours': 'Open 24 hours'}], 'peopleAlsoSearch': [{'category': 'People also search for', 'title': 'Shell', 'reviewsCount': 77, 'totalScore': 3.6}, {'category': 'People also search for', 'title': 'Chevron', 'reviewsCount': 17, 'totalScore': 2.8}, {'category': 'People also search for', 'title': 'Citgo', 'reviewsCount': 70, 'totalScore': 3.8}, {'category': 'People also search for', 'title': 'bp', 'reviewsCount': 51, 'totalScore': 3.2}, {'category': 'People also search for', 'title': 'Valero', 'reviewsCount': 63, 'totalScore': 3.6}], 'placesTags': [{'title': 'Other', 'count': 1}], 'reviewsTags': [], 'additionalInfo': {'Accessibility': [{'Wheelchair accessible entrance': True}, {'Wheelchair accessible parking lot': True}, {'Wheelchair accessible restroom': True}], 'Offerings': [{'Car wash': True}, {'Diesel gas': True}], 'Amenities': [{'Restroom': True}], 'Payments': [{'Debit cards': True}, {'NFC mobile payments': True}]}, 'gasPrices': [{'priceTag': '$3.60', 'updatedAt': '2023-05-25T14:35:53.000Z', 'unit': 'gallon', 'currency': 'USD', 'price': 3.6, 'gasType': 'Regular'}, {'priceTag': '$4.20', 'updatedAt': '2023-05-25T11:02:08.000Z', 'unit': 'gallon', 'currency': 'USD', 'price': 4.2, 'gasType': 'Midgrade'}, {'priceTag': '$4.70', 'updatedAt': '2023-05-25T09:18:51.000Z', 'unit': 'gallon', 'currency': 'USD', 'price': 4.7, 'gasType': 'Premium'}, {'priceTag': '$5.00', 'updatedAt': '2023-05-25T10:57:00.000Z', 'unit': 'gallon', 'currency': 'USD', 'price': 5, 'gasType': 'Diesel'}], 'questionsAndAnswers': None, 'updatesFromCustomers': None, 'webResults': [], 'orderBy': [], 'imageUrls': [], 'reviews': []}

I have been looking at other answers for using excels and they all use variables for the columns and rows but I don't think I have that. I am not that experienced with python and would be grateful for any advice.

0

There are 0 answers