To_Json --> Umlaute nicht als Unicode darstellen
Verfasst: Mittwoch 10. Juni 2020, 13:12
Hallo zusammen,
ich habe eine Frage zu folgendem Python-Script. Das Script fügt für jede Zeile eines Excel-Arbeitsblattes die Texte einzelner Zellen im Json-Format in der letzten Spalte der Excel-Datei zusammen. Funktioniert alles wunderbar. Einziges Problem ist, dass Umlaute und Sonderzeichen in Unicode-Ausdrücken (z.B. \u00f6 ) dargestellt werden, ich bräuchte sie jedoch ganz normal als Umlaute und Sonderzeichen (z.B. ö oder é).
Wie kann ich den Code entsprechend anpassen? Vielen Dank im Voraus für eure Hilfe.
# -*- coding: utf-8 -*-
"""
Created on Wed Jun 10 13:22:37 2020
@author: Acer
"""
import pandas as pd
import xlwings as xw
#open currently active workbook and navigate to calculation sheet
wb = xw.books.active
ws_searchdata=wb.sheets('Tabelle1')
#get target column for json
column_headers_xls = list((ws_searchdata.range('A1').options(expand='horizontal').value))
column_headers_dict = { column_headers_xls : i for i in range(0, len(column_headers_xls) ) }
col_json_data=column_headers_dict['data']+1
#read in dataframe from excel file, first column must have values
df= ws_searchdata.range('A1').options(pd.DataFrame, expand='table', header=1).value
df.drop(["identitytype", "idworkstatus", "idlanguage", "idowner", "idrelevance", "tsindexed", "desc", "values", "clarification", "extra3", "extra4"], axis = 1, inplace=True)
# iterate over rows in data frame with iterrows() and convert to json, collect in a list
json_data=[]
for index, row in df.iterrows():
json_data.append(row.iloc[:-1].to_json(orient='index'))
#write back to excel file
ws_searchdata.range(2, col_json_data).options(transpose=True).value=json_data
ich habe eine Frage zu folgendem Python-Script. Das Script fügt für jede Zeile eines Excel-Arbeitsblattes die Texte einzelner Zellen im Json-Format in der letzten Spalte der Excel-Datei zusammen. Funktioniert alles wunderbar. Einziges Problem ist, dass Umlaute und Sonderzeichen in Unicode-Ausdrücken (z.B. \u00f6 ) dargestellt werden, ich bräuchte sie jedoch ganz normal als Umlaute und Sonderzeichen (z.B. ö oder é).
Wie kann ich den Code entsprechend anpassen? Vielen Dank im Voraus für eure Hilfe.
# -*- coding: utf-8 -*-
"""
Created on Wed Jun 10 13:22:37 2020
@author: Acer
"""
import pandas as pd
import xlwings as xw
#open currently active workbook and navigate to calculation sheet
wb = xw.books.active
ws_searchdata=wb.sheets('Tabelle1')
#get target column for json
column_headers_xls = list((ws_searchdata.range('A1').options(expand='horizontal').value))
column_headers_dict = { column_headers_xls : i for i in range(0, len(column_headers_xls) ) }
col_json_data=column_headers_dict['data']+1
#read in dataframe from excel file, first column must have values
df= ws_searchdata.range('A1').options(pd.DataFrame, expand='table', header=1).value
df.drop(["identitytype", "idworkstatus", "idlanguage", "idowner", "idrelevance", "tsindexed", "desc", "values", "clarification", "extra3", "extra4"], axis = 1, inplace=True)
# iterate over rows in data frame with iterrows() and convert to json, collect in a list
json_data=[]
for index, row in df.iterrows():
json_data.append(row.iloc[:-1].to_json(orient='index'))
#write back to excel file
ws_searchdata.range(2, col_json_data).options(transpose=True).value=json_data