-5
votes

Comment insérer un dictionnaire dans un autre dictionnaire quand il s'agit d'une liste dans Python?

J'ai un dictionnaire sous une liste et je souhaite insérer un autre dictionnaire dans cette liste. Ainsi besoin d'aide pour python.

{"issue": {
    "custom_field_values": {
        "183" : "Sprint-1",
        "7" : "12.5.0",
        "11" : "Low (P4)",
        "13" : "Functional",
        "180" : "Legacy Issue identified in Sprint",
        "93" : "CERT-20083926:FN_Update_Gemalto_HSMSettings_Available_Status_DefaultOptionEnabled_ChangeInvalidPassword",
        "150" : "CERTIFICATE"
    },
    "project_id" : 25,
    "category_id": 2380
}}


3 commentaires

Production attendue:


{"problème": {"custom_field_values": {"183": "Sprint-1", "7": "12.5.0", "11": "LOW (P4)", "13": "fonctionnel", "180": "Problème hérité identifié dans Sprint", "93": "CERT-20083926: FN_UPDATE_GEMALTO_HSMSETTS_GEMALTO_HSMSETTS_GEMALTO_HSMSETTS_GEMALTO_HSME_Changefault DecPassword", "150": "Certificat"}, "Project_id": 25, "Catégorie_id": 2380 }}


On ne sait pas ce que vous demandez. Fournissez une traçabilité et une description de tâche plus détaillée, s'il vous plaît


3 Réponses :


0
votes

Essayez ci-dessous, il vous suffit d'ajouter une liste sur Éléments CODE> Stuff:

custom_field_payload = {'custom_value_fields':custom_fields.items()}
payload = {'issue' : dict(list(payload.items())+list(custom_field_payload.items()))}


6 commentaires

Autre que custom_field_payload, j'ai une charge utile supplémentaire également utile = {"Objet": émetteur ["Sujet"], "fixe_version_id": fixe_version_id, "assigné_to_id": cessionnaire [émetteur ["cessionnaire"], "parent_issue_id": int (problème ["Parenttask '])," tracker_id ": trackers [numéro [" suivi "]]," priority_id ": priorités [émission [" priorité "]]," Description ": Problème [' Description '],}


@Aravindarun a édité la mienne.


Obtenir une erreur non prise en charge des types d'opérande pour +: 'dict' et 'list'


La charge utile est un dictionnaire


@Aravindarun essai maintenant


Maintenant, obtenez cette erreur d'erreur de la séquence de mise à jour du dictionnaire # 0 a la longueur 19; 2 est requis



0
votes

Essayez ceci:

issue = {'Sprint#': "Sprint-1",
         'AffectedVersion': "12.5.0",
         'Severity': "Low (P4)",
         'Tag': "Functional",
         'Tester root cause': "Legacy Issue identified in Sprint",
         'Testcase ID': "CERT-20083926:FN_Update_Gemalto_HSMSettings_Available_Status_DefaultOptionEnabled_ChangeInvalidPassword",
         'Subsystem': "CERTIFICATE"}

default_payload = {"project_id": 25, "category_id": 2380}
custom_fields = {
    "183": issue['Sprint#'],
    "7": issue['AffectedVersion'],
    "11": issue['Severity'],
    "13": issue['Tag'],
    "180": issue['Tester root cause'],
    "93": issue['Testcase ID'],
    "150": issue['Subsystem']
}
custom_field_payload = {'custom_field_values':custom_fields}
p = {'issue' : custom_field_payload}
payload = default_payload.copy()
payload.update(p)

print(payload)


0 commentaires

0
votes

Je suppose que l'erreur que vous rencontrez se passe comme suit: TypeError: type (s) d'opérande non pris en charge pour +: 'dict_items' et 'dict_items' . Interprétatons cette erreur.

typeError -> Premier off, nous pouvons voir que ceci est un typeError , cela signifie que nous avons fait une erreur avec quel type (s) nous utilisons.

type (s) d'opérande non pris en charge pour +: -> Cela nous dit que nous avons essayé d'ajouter deux opérandes, mais leur type n'était pas supporté (invalide).

'dict_items' et 'dict_items' -> Enfin, cela nous dit que nous avons essayé d'ajouter deux dict_items , qui est la méthode éléments à l'intérieur de dict classe ( dict.items ).

Nous savons que l'erreur a été obtenu parce que nous avons essayé d'ajouter deux dict.items qui n'est pas pris en charge, nous ne pouvons donc pas continuer à ajouter ces deux.

Qu'est-ce que je pense que vous avez essayé de faire est Insérer par défaut_payload au dictionnaire utile . Pour ce faire, vous pouvez remplacer votre dictionnaire utile avec ceci: xxx

the dict.update inserts de méthode un dictionnaire dans un autre dictionnaire.


0 commentaires