Как преобразовать столбцы из CSV-файла в JSON, чтобы пара ключей и значений была из разных столбцов CSV-файла с использованием Python? - PullRequest
1 голос
/ 04 ноября 2019

У меня есть CSV-файл, в котором содержатся метки и их перевод на разные языки.

name                      en_GB     de_DE
ElementsButtonAbort       Abort     Abbrechen
ElementsButtonConfirm     Confirm   Bestätigen
ElementsButtonDelete      Delete    Löschen
ElementsButtonEdit        Edit      Ãndern

Я хочу преобразовать этот CSV в JSON в следующий шаблон, используя PYTHON:

{
    "de_De": {
        "translations":{
            "ElementsButtonAbort": "Abbrechen"
                       }
             },
   "en_GB":{
       "translations":{
           "ElementsButtonAbort": "Abort"
                      }
             }
 }

Как я могу сделать это с помощью Python?

1 Ответ

0 голосов
/ 04 ноября 2019

Скажите, что ваши данные таковы:

import pandas as pd

df = pd.DataFrame([["ElementsButtonAbort", "Abort", "Arbrechen"],
                   ["ElementsButtonConfirm", "Confirm", "Bestätigen"],
                   ["ElementsButtonDelete", "Delete", "Löschen"],
                   ["ElementsButtonEdit", "Edit", "Ãndern"]],
                   columns=["name", "en_GB", "de_DE"])

Тогда, возможно, это не лучший способ сделать это, но по крайней мере это работает:

df.set_index("name", drop=True, inplace=True)
translations = df.to_dict()

Теперь, если выесли вы хотите получить именно тот словарь, который вы выводите в качестве желаемого результата, вы можете сделать:

for language in translations.keys():
    _ = translations[language]
    translations[language] = {}
    translations[language]["translations"] = _

Наконец, если вы хотите сохранить свой словарь в JSON:

import json

with open('PATH/TO/YOUR/DIRECTORY/translations.json', 'w') as fp:
    json.dump(translations, fp)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...