The Community will be temporarily unavailable starting on Friday February 28. We’ll be back as soon as we can! To learn more, check out our Announcements blog post.
Oct 25, 2022 12:41 PM
In python and pandas I have the following dataframe:
tweet_text.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 11 entries, 0 to 10
Data columns (total 8 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 tweet_id 11 non-null object
1 created_at 11 non-null object
2 source 11 non-null object
3 geo 0 non-null object
4 coordinates 0 non-null object
5 entities 11 non-null object
6 user 11 non-null object
7 text 11 non-null object
dtypes: object(8)
memory usage: 832.0+ bytes
I then made this routine to iterate through the dataframe and include data in a table in the Airtable, which have the same columns
AIRTABLE_BASE_ID = ""
AIRTABLE_TABLE_NAME = ""
AIRTABLE_API_KEY = ""
ENDPOINT = f'https://api.airtable.com/v0/{AIRTABLE_BASE_ID}/{AIRTABLE_TABLE_NAME}'
headers = {
"Authorization": f"Bearer {AIRTABLE_API_KEY}",
"Content-Type": "application/json"
}
def add_to_airtable(tweet_id, created_at, source, geo, coordinates, entities, user, text):
data = {
"records": [
{
"fields": {
"tweet_id": tweet_id,
"created_at": created_at,
"source": source,
"geo": geo,
"coordinates": coordinates,
"entities": entities,
"user": user,
"text": text
}
}
]
}
data = json.dumps(data, indent=4, sort_keys=True, default=str)
r = requests.post(ENDPOINT, json=data, headers=headers)
return r.status_code
for num, row in tweet_text.iterrows():
tweet_id = row['tweet_id']
created_at = row['created_at']
source = row['source']
geo = row['geo']
coordinates = row['coordinates']
entities = row['entities']
user = row['user']
text = row['text']
add_to_airtable(tweet_id, created_at, source, geo, coordinates, entities, user, text)
The script runs without errors. But it doesn’t add anything to the Airtable table
Please does anyone know what could be wrong?
The returned r.status_code is being 422
Below is an example of the date (the JSON) that I send
{
"records": [
{
"fields": {
"coordinates": null,
"created_at": "2022-10-25",
"entities": {
"hashtags": [],
"symbols": [],
"urls": [
{
"display_url": "twitter.com/i/web/status/1\u2026",
"expanded_url": "https://twitter.com/i/web/status/1585051831402909696",
"indices": [
116,
139
],
"url": "https://t.co/b78PGeNpEK"
}
],
"user_mentions": []
},
"geo": null,
"source": "Twitter for iPhone",
"text": "queria que essa vagabunda dessa ex \u201cjornalista\u201d da record que faz propaganda pro bolsonaro tomasse um t*ro na boca\u2026 https://t.co/b78PGeNpEK",
"tweet_id": "1585051831402909696",
"user": "User(_api=<tweepy.api.API object at 0x7f8a5249d120>, _json={'id': 197990491, 'id_str': '197990491', 'name': 'irm\u00e3 vape', 'screen_name': 'matheusisonline', 'location': 's\u00e3o paulo', 'description': 'tonelzinho de plut\u00f4nio', 'url': 'https://t.co/MDSDCeet1R', 'entities': {'url': {'urls': [{'url': 'https://t.co/MDSDCeet1R', 'expanded_url': 'http://instagram.com/matheusisthecowboy', 'display_url': 'instagram.com/matheusistheco\u2026', 'indices': [0, 23]}]}, 'description': {'urls': []}}, 'protected': False, 'followers_count': 251, 'friends_count': 295, 'listed_count': 13, 'created_at': 'Sun Oct 03 01:32:35 +0000 2010', 'favourites_count': 112504, 'utc_offset': None, 'time_zone': None, 'geo_enabled': False, 'verified': False, 'statuses_count': 100136, 'lang': None, 'contributors_enabled': False, 'is_translator': False, 'is_translation_enabled': False, 'profile_background_color': '1A1B1F', 'profile_background_image_url': 'http://abs.twimg.com/images/themes/theme1/bg.png', 'profile_background_image_url_https': 'https://abs.twimg.com/images/themes/theme1/bg.png', 'profile_background_tile': True, 'profile_image_url': 'http://pbs.twimg.com/profile_images/1567659610185637890/Ep35e-zx_normal.jpg', 'profile_image_url_https': 'https://pbs.twimg.com/profile_images/1567659610185637890/Ep35e-zx_normal.jpg', 'profile_banner_url': 'https://pbs.twimg.com/profile_banners/197990491/1652726900', 'profile_link_color': '000000', 'profile_sidebar_border_color': 'FFFFFF', 'profile_sidebar_fill_color': 'FFFFFF', 'profile_text_color': '000000', 'profile_use_background_image': True, 'has_extended_profile': True, 'default_profile': False, 'default_profile_image': False, 'following': False, 'follow_request_sent': False, 'notifications': False, 'translator_type': 'none', 'withheld_in_countries': []}, id=197990491, id_str='197990491', name='irm\u00e3 vape', screen_name='matheusisonline', location='s\u00e3o paulo', description='tonelzinho de plut\u00f4nio', url='https://t.co/MDSDCeet1R', entities={'url': {'urls': [{'url': 'https://t.co/MDSDCeet1R', 'expanded_url': 'http://instagram.com/matheusisthecowboy', 'display_url': 'instagram.com/matheusistheco\u2026', 'indices': [0, 23]}]}, 'description': {'urls': []}}, protected=False, followers_count=251, friends_count=295, listed_count=13, created_at=datetime.datetime(2010, 10, 3, 1, 32, 35, tzinfo=datetime.timezone.utc), favourites_count=112504, utc_offset=None, time_zone=None, geo_enabled=False, verified=False, statuses_count=100136, lang=None, contributors_enabled=False, is_translator=False, is_translation_enabled=False, profile_background_color='1A1B1F', profile_background_image_url='http://abs.twimg.com/images/themes/theme1/bg.png', profile_background_image_url_https='https://abs.twimg.com/images/themes/theme1/bg.png', profile_background_tile=True, profile_image_url='http://pbs.twimg.com/profile_images/1567659610185637890/Ep35e-zx_normal.jpg', profile_image_url_https='https://pbs.twimg.com/profile_images/1567659610185637890/Ep35e-zx_normal.jpg', profile_banner_url='https://pbs.twimg.com/profile_banners/197990491/1652726900', profile_link_color='000000', profile_sidebar_border_color='FFFFFF', profile_sidebar_fill_color='FFFFFF', profile_text_color='000000', profile_use_background_image=True, has_extended_profile=True, default_profile=False, default_profile_image=False, following=False, follow_request_sent=False, notifications=False, translator_type='none', withheld_in_countries=[])"
}
}
]
}