I am following this tutorial for encrypting and decrypting data with the Python cryptography package and this other SO Post is very similar but doesn't include sending the data over the internet to an http server which I am curious to figure out how. The tutorials are about using Fernet key as the encrypting method.
So this code below is reading a CSV file of time series data, and the encrypting part works just fine its just how can I package this as form data? Pandas read CSV, to json, and then I think to bytes of data for encrypting, is that possible to package as form and POST it to an HTTP Python Flask app endpoint?
This code runs fine below until it hits the requests.post
part to POST the encrypted data:
import pandas as pd
import requests
import time
from cryptography.fernet import Fernet
df = pd.read_csv('event_schedule.xlsx', index_col='Time Block',parse_dates=True)
print(df)
post_this_data = df.to_json(orient="index")
print(post_this_data)
file = open('secret.key','rb')
key = file.read()
file.close()
fernet = Fernet(key)
encrypted=fernet.encrypt(post_this_data.encode())
print('Encrypted Success')
encrypted_list = list(encrypted)
r = requests.post('http://192.168.0.105:5000/update/data', data=encrypted_list)
print(r.text)
Traceback is:
Traceback (most recent call last):
File "C:\Users\bbartling\OneDrive - Slipstream\Desktop\event_schedule\postingScriptEncrypted.py", line 26, in <module>
r = requests.post('http://10.200.200.223:5000/update/data', data=encrypted_list)
File "C:\Python39\lib\site-packages\requests\api.py", line 119, in post
return request('post', url, data=data, json=json, **kwargs)
File "C:\Python39\lib\site-packages\requests\api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Python39\lib\site-packages\requests\sessions.py", line 528, in request
prep = self.prepare_request(req)
File "C:\Python39\lib\site-packages\requests\sessions.py", line 456, in prepare_request
p.prepare(
File "C:\Python39\lib\site-packages\requests\models.py", line 319, in prepare
self.prepare_body(data, files, json)
File "C:\Python39\lib\site-packages\requests\models.py", line 510, in prepare_body
body = self._encode_params(data)
File "C:\Python39\lib\site-packages\requests\models.py", line 97, in _encode_params
for k, vs in to_key_val_list(data):
TypeError: cannot unpack non-iterable int object