В настоящее время у меня есть текстовая строка, разделенная амперсандом, которую мне нужно проанализировать с помощью PySpark, чтобы извлечь пары ключ-значение в массив / словарь. Я могу сделать это с большинством тегов, которые у меня есть в строке, но проблема в том, что у некоторых ключей есть индекс, и он может варьироваться для каждой записи, но ключи всегда будут одинаковыми (если это имеет смысл. Что я хотел бы сделать это, перебрать строку
Пример ввода:
"{pr1nm=Apples&pr1id=1111111&pr1pr=200.00&pr1qt=1&pr2nm=Pears&pr2id=1111112&pr2pr=300.00&pr2qt=2}"
Желаемый результат:
[{
"ProductName":"Apples",
"ProductId": "1111111",
"ProductPrice":"200.00",
"ProductQuantity":"1",
"ProductName":"Pears",
"ProductId":"1111112",
"ProductPrice":"300.00"
"ProductQuantity":"2"
}]
Кроме того, если у меня есть другие теги в той же строке, которые не относятся к продукту, например:
"{dl=https://stackoverflow.com/posts/XXXXX&t=pageview&pr1nm=Apples&pr1id=1111111&pr1pr=200.00&pr1qt=1&pr2nm=Pears&pr2id=1111112&pr2pr=300.00&pr2qt=2}"
вывод должен быть примерно таким с продуктами во вложенном массиве:
{"DocumentLocation":"https://stackoverflow.com/posts/XXXXX",
"HitType":"pageview",
"Products": [{
"ProductName":"Apples",
"ProductId": "1111111",
"ProductPrice":"200.00",
"ProductQuantity":"1",
"ProductName":"Pears",
"ProductId":"1111112",
"ProductPrice":"300.00"
"ProductQuantity":"2"
}]
}