Измените структуру JSON, чтобы она подходила для упругого типа - PullRequest
0 голосов
/ 22 января 2019

У меня большой файл json в следующем формате:

{
            "enTitle": “my product",
            "esTitle": “es prod",
            "esDescription": “es description",
            "enDescription": “description",
            "URL": “url",
            "Image": “imagepath",
            "HasLandingPage": "1",
            "AddInfo": "info"
        }

Как я могу изменить его на следующий формат: возможно ли это?Мне нужно, чтобы он был в этом формате, чтобы я мог добавить его в API поисковой системы (эластичный swiftype) в качестве документа.Я посмотрел много вопросов, не мог найти то, что мне нужно.Заранее извиняюсь, если это дубликат.Есть ли способ написать программу для этого преобразования?

    {"name": "enTitle", "value": "my product", "type": "string"},
    {"name": "esTitle", "value": "es prod", "type": "string"},
    {"name": "esDescription", "value": "es description", "type": "string"},
    {"name": "enDescription", "value": "description", "type": "string"},
    {"name": "URL", "value": "url", "type": "string"},
    {"name": "Image", "value": "imagepath", "type": "string"},
    {"name": "HasLandingPage", "value": "1", "type": "string"},
    {"name": "AddInfo", "value": "info", "type": "string"}

1 Ответ

0 голосов
/ 22 января 2019

Диктовке нужны уникальные ключи, вы можете поместить несколько диктов в список.

import json
dict_type = {"enTitle": "my product",
            "esTitle": "es prod",
            "esDescription": "es description",
            "enDescription": "description",
            "URL": "url",
            "Image": "imagepath",
            "HasLandingPage": "1",
            "AddInfo": "info"
        }


def check_type(var):
    if isinstance(var, str):
        return 'string'
    elif isinstance(var, int):
        return 'interger'
    elif isinstance(var, float):
        return 'float'
    elif isinstance(var, bool):
        return 'boolean'

swift_type = list()
for key,val in dict_type.items():
    swift_type.append({"name": key, "value": val, "type": check_type(val)})

print(*swift_type, sep='\n')

# Coverted to json
swift_type = json.dumps(swift_type)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...