encabezados en el csv

parent efdf8b93
...@@ -469,6 +469,36 @@ def wsDownloadNews(request): ...@@ -469,6 +469,36 @@ def wsDownloadNews(request):
def apiDownloadNews(request): def apiDownloadNews(request):
apiuser = Apikey.objects.get(key=request.GET["key"]).user apiuser = Apikey.objects.get(key=request.GET["key"]).user
if apiuser is None:
return HttpResponse(json.dumps("{}"), content_type="application/json")
else:
request.user = apiuser
news = getNewsByRequest(request)
s = BytesIO()
zf = zipfile.ZipFile(s, "w")
zf.writestr("setting.txt", json.dumps(request.GET))
data = news2JSON(news)
if request.GET['format'] == "JSON":
zf.writestr("data.json", json.dumps(data))
if request.GET['format'] == "CSV":
csvString = StringIO()
# Obtener los nombres de las columnas del primer elemento (si existe)
fieldnames = data[0].keys() if data else []
writer = csv.DictWriter(csvString, fieldnames=fieldnames, quoting=csv.QUOTE_ALL)
writer.writeheader() # Escribir los encabezados
for d in data:
writer.writerow(d)
zf.writestr("data.csv", csvString.getvalue())
zf.close()
response = HttpResponse(s.getvalue(), content_type="application/x-zip-compressed")
response['Content-Disposition'] = 'attachment; filename="news_' + str(int(time.time())) + '.zip"'
return response
apiuser = Apikey.objects.get(key=request.GET["key"]).user
if apiuser is None: if apiuser is None:
return HttpResponse(json.dumps("{}"), content_type="application/json") return HttpResponse(json.dumps("{}"), content_type="application/json")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment