I think using geopandas is a more convenient way to create GeoJSON.
Once you convert your txt to coordinates, you need to do some preliminary work.
This is the process of handling str in pandas.
import pandas as pd
import geopandas as gpd
from shapely.geometry import Point
#handling txt
#remove 'lat=' and 'long=' then type change from object to float to make point.
df = pd.read_csv('path_your_txt', header=None, names = ['lat','long', 'name','description'])
df['lat'] = df['lat'].str.replace('lat=', '')
df['long'] = df['long'].str.replace('long=', '')
df['lat'] = df['lat'].astype(float)
df['long'] = df['long'].astype(float)
#make point geometry
df['geometry'] = df.apply(lambda row: Point(row['long'], row['lat']), axis=1) #long is X, lat is Y
#change df to gdf
gdf = gpd.GeoDataFrame(df, geometry = 'geometry', crs='EPSG:4326') #epsg4326 is WGS84
Having created a gdf, you have now created a spatial data containing points and attribute data.
Now you only need one command to create GeoJSON.
gdf.to_file('path_and_filename.geojson', driver='GeoJSON')
As for grouping, what you need to do depends on the purpose of the grouping.
If you just want to count, use groupby.
gdf.groupby('name').size()
If what you want is to create a line, you need a slightly different approach.
from shapely.geometry import LineString
gdf_line = gdf.groupby(['name', 'description'])['geometry'].apply(lambda x: LineString(x.tolist()))
Best Answer
You can use Table to Table (Conversion) or Copy Rows (Data Management) here. Both of them have a very similar structure.
Usage of Table to Table:
Example: