Обновить сложный текст другим форматом с другим форматированием - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть два python2 словаря, и я хочу запустить dict1.update(dict2).К сожалению, сейчас я получаю сообщение об ошибке:

ValueError: элемент последовательности обновления словаря # 0 имеет длину 1;Требуется 2

Когда я пытаюсь это сделать.Теперь мне нужен способ преобразовать первый или второй словарь, чтобы обновление прошло успешно.Первый словарь выглядит следующим образом:

{'xpos': 1000012783L, 'tags': [{'searchParameters': None, 'category': u'C Discovery Tags', 'tagGuid': u'VT0000068_112783_f000819_sf063'}], 'functionalData': [], 'notes': [], 'selectedMainTranscriptId': None, 'alt': u'A', 'guid': u'SV0000023_112783_f000819_sf063', 'ref': u'G', 'id': 23}

Второй словарь выглядит так (фактически он извлекается из JSONField из Django модели):

{"liftedOverGenomeVersion": null, "pos": 12783, "predictions": {"splice_ai": null, "eigen": 0.299, "revel": null, "mut_taster": null, "fathmm": null, "phastcons_100_vert": null, "polyphen": null, "dann": 0.2757730705502398, "sift": null, "cadd": 0.828, "metasvm": null, "primate_ai": null, "gerp_rs": null, "mpc": null}, "clinvar": {"alleleId": null, "clinicalSignificance": null, "variationId": null, ...}

Я проверил типы словарей, и они оба <type 'dict'>.Любые предложения будут с благодарностью

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

У вас есть «Нет» в первом словаре и «Ноль» в другом словаре.

В Python нет 'Null'.

Исправление этой проблемы решило.

d1 = {'xpos': 1000012783,'tags': [{'searchParameters': None, 'category': 'C Discovery Tags', 'tagGuid': 'VT0000068_112783_f000819_sf063'}], 'functionalData': [], 'notes': [], 'selectedMainTranscriptId': None, 'alt': 'A', 'guid': 'SV0000023_112783_f000819_sf063', 'ref': 'G', 'id': 23}



d2 = {"liftedOverGenomeVersion": None, "pos": 12783, "predictions": {"splice_ai": None, "eigen": 0.299, "revel": None, "mut_taster": None, "fathmm": None, "phastcons_100_vert": None, "polyphen": None, "dann":0.2757730705502398, "sift": None, "cadd": 0.828, "metasvm": None, "primate_ai": None, "gerp_rs": None, "mpc": None}, "clinvar": {"alleleId": None, "clinicalSignificance": None, "variationId": None}}


d1.update(d2)

print(d1)

enter image description here

0 голосов
/ 26 сентября 2019

Я наконец понял, в чем проблема.Это произошло следующим образом: сначала у нас была TextField в Django модели, и мы сохраняли в нее json, что требовало json.dumps(dict_to_save).Но затем мы переключились на JSONField, и этот json.dumps начал вызывать проблему, вводя null s в базу данных.Это не ответ на мой вопрос, но кое-что, о чем нужно знать.Довольно сложно идентифицировать ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...