Quantcast
Channel: Últimos conteúdos
Viewing all articles
Browse latest Browse all 14190

quebrar string e preencher código json

$
0
0

Boa tarde amigos..  

Estou com um problema aqui que está me deixando dias parado!

realmente, não encontro solução.. Qualquer sugestão é muito bem vinda!

Vamos lá ao problema;

 

Tenho uma string que vem de uma aplicação de terceiros... essa string contém alguns objetos e alguns valores... segue exemplo;

=== Run information ===


Scheme:       weka.associations.Apriori -N 10 -T 0 -C 0.9 -D 0.05 -U 1.0 -M 0.1 -S -1.0 -c -1
Relation:     NFe
Instances:    2
Attributes:   3
              Acucar_Cristal_02_kg
              Cafe_250_gr
              frango_inteiro
=== Associator model (full training set) ===




Apriori
=======


Minimum support: 0.75 (1 instances)
Minimum metric <confidence>: 0.9
Number of cycles performed: 5


Generated sets of large itemsets:


Size of set of large itemsets L(1): 6


Size of set of large itemsets L(2): 6


Size of set of large itemsets L(3): 2


Best rules found:


 1. Cafe_250_gr=yes 1 ==> Acucar_Cristal_02_kg=yes 1    conf:(1)
 2. Acucar_Cristal_02_kg=yes 1 ==> Cafe_250_gr=yes 1    conf:(1)
 3. frango_inteiro=no 1 ==> Acucar_Cristal_02_kg=yes 1    conf:(1)
 4. Acucar_Cristal_02_kg=yes 1 ==> frango_inteiro=no 1    conf:(1)
 5. Cafe_250_gr=no 1 ==> Acucar_Cristal_02_kg=no 1    conf:(1)
 6. Acucar_Cristal_02_kg=no 1 ==> Cafe_250_gr=no 1    conf:(1)
 7. frango_inteiro=yes 1 ==> Acucar_Cristal_02_kg=no 1    conf:(1)
 8. Acucar_Cristal_02_kg=no 1 ==> frango_inteiro=yes 1    conf:(1)
 9. frango_inteiro=no 1 ==> Cafe_250_gr=yes 1    conf:(1)
10. Cafe_250_gr=yes 1 ==> frango_inteiro=no 1    conf:(1)

 
Esse valores são o seguinte:
Para cada 1 item "Cafe_250_gr" vendido, também é vendido 1 "Acucar_Cristal_02_kg". O valor logo após o yes significa valor vendido.
 
Reparem que só foi vendido 3 produtos diferentes.
 
 
Tenho uma variável json com a seguinte estrutura:
 

var json = {
'label': ['label A', 'label B', 'label C'],
'values': [
{
'label': 'date A',
'values': [20, 40, 15]
},
{
'label': 'date B',
'values': [30, 10, 45]
},
{
'label': 'date C',
'values': [38, 20, 35]
},
{
'label': 'date D',
'values': [58, 10, 35]
},
{
'label': 'date E,
'values': [55, 60, 34]
}]
};

'label': ['label A', 'label B', 'label C'] >>>> Essa variável vai absorver os produtos vendidos, no caso são 3.

 

{
'label': 'date A',
'values': [20, 40, 15]
} >>>>> Essa variável vai marcar o numero da venda e quanto foi vendido pra cada produto, obedecendo a ordem dos produtos...

 

RESUMINDO, preciso que esse json fique nesse caso, da seguinte forma

'label': ['Cafe_250_gr', 'Acucar_Cristal_02_kg', 'frango_inteiro'],
'values': [
{
'label': 'Venda 1',
'values': [1, 1, 0]
},
{
'label': 'Venda 2',
'values': [1, 1, 0]
},
{
'label': 'Venda 3',
'values': [0, 1, 1]
}.....

Reparem que na terceira venda registrada no texto, não existem café, o motivo por ele levar 0 no valor values do json.

 
Eu preciso montar essa variável com os produtos e os valores da string, pra isso, preciso quebra-lá como o código abaixo:

var array = texto.split("\n");
                        for(i in array) {
                            if(array[i] == 'Best rules found:')
                            {
                                linhaInicio = parseInt(i) + 2;
                                break;
                            }
                        }

Com esse código, consigo pegar exatamente os valores que preciso ex: 1. Cafe_250_gr=yes 1, mas daí pra frente não consigo fazer muita coisa..

 

Preciso de uma luz..

 

Cordialmente, Leandro Ricardo

 


Viewing all articles
Browse latest Browse all 14190