-2
votes

Supprimer la clé de la liste extérieure dans la carte Elixir pour extraire la carte intérieure

{J'essaie de supprimer une clé extérieure d'une carte qui ressemble à ceci: xxx

pour obtenir: xxx

J'ai essayé le motif correspondant et extraire les valeurs et les glisser dans une liste en vain. Cela semble une étape très simple mais je suis coincé. Existe-t-il un moyen de couper les cartes?

Modifier

Merci pour vos efforts, mon problème a été résolu en énumérant mes données dans une carte directement. xxx


2 commentaires

Le résultat que vous attendez n'est pas clair. Est-ce une liste des cartes?


Le résultat attendu tel que posté est un tuple de 6 éléments, pas une liste.


3 Réponses :


0
votes

compréhensions est idéal pour faire des choses avec des énumérables. Ils ne sont pas la préférence préférée et jamais la seule solution, mais je les aime bien. XXX


0 commentaires

0
votes

Mais vous pouvez moquer de la motivation sur elle assez facilement:

iex> %{orders: inner} = %{
...>   orders: [
...>     %{"000147815" => "2018-08-29T11:37:16Z"},
...>     %{"000147814" => "2018-08-07T06:35:22Z"},
...>     %{"000147813" => "2018-08-03T13:07:07Z"},
...>     %{"000147812" => "2018-07-31T11:41:54Z"},
...>     %{"000147811" => "2018-07-31T11:35:00Z"},
...>     %{"000147810" => "2018-07-24T14:52:40Z"}
...>   ]
...> }
iex> inner
[
  %{"000147815" => "2018-08-29T11:37:16Z"},
  %{"000147814" => "2018-08-07T06:35:22Z"},
  %{"000147813" => "2018-08-03T13:07:07Z"},
  %{"000147812" => "2018-07-31T11:41:54Z"},
  %{"000147811" => "2018-07-31T11:35:00Z"},
  %{"000147810" => "2018-07-24T14:52:40Z"}
]


3 commentaires

{Commandes, inner} = jsonloader.load_to_database (dB, "/Home/usr/pathtoproject/orders.json") ** (MatchError) Aucune correspondance de la valeur latérale droite:% {Commandes: [% {"000147815" = >> "2018-08-29T11: 37: 16Z"},% {"000147814" => "2018-08-07t06: 35: 22Z"},% {"000147813" => "2018-08-03t13: 07: 07Z "},% {" 000147812 "=>" 2018-07-31t11: 41: 54z "},% {" 000147811 "=>" 2018-07-31t11: 35: 00Z "},% {" 000147810 "=> "2018-07-24t14: 52: 40Z"},% {"000147809" => "2018-07-24T14: 30: 13Z"},% {"000147808" => "2018-07-24T14: 23: 32Z "},% {" 000147807 "=>" 2018-07-24T13: 59: 45Z "}]}


{Commandes: inner} = jsonloader.load_to_database (dB, "/Home/usr/pathtoproject/orders.json") ** (SyntaxError) IEX: 9: Erreur de syntaxe avant: Commandes


Vous avez oublié % avant {.



0
votes

Il y a plusieurs façons que vous pouvez y parvenir. Par exemple, vous pouvez facilement le résoudre en utilisant Enum.Reduce / 3 . Comme: xxx

si les cartes de l'intérieur des commandes avaient plus d'une {clé, valeur} , ils seraient également ajoutés à la carte résultante. Méfiez-vous, cependant, si l'une des clés apparaît dans plusieurs cartes, seule la dernière valeur sera conservée. Mais cela ne semble pas affecter votre cas d'utilisation


0 commentaires