Terminador de esta cadena Json por !!
pero no en el último registro, por lo que no puedo recuperar todos los registros correspondientes ({.*?}!!)
cuando lo uso, ({.*?})
puedo recuperar todos, pero no, con valores completos.
JSON
x = {'d':'AAAAA@5##{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11": 1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}!!AAAAA@6##{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11": 1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}!!AAAAA@7##{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11": 1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}'}
Buen formato
x = {'d':'AAAAA@5##{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11": 1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}
!!AAAAA@6##{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11": 1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}
!!AAAAA@7##{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11": 1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}'}
Código Python
re.findall(r"(AAAAA@\d+##)({.*?})", x['d'])
Resultado
[('AAAAA@5##', '{"pp-0":[{"pp-1": 1000, "pp-3": 1003}'),
('AAAAA@6##', '{"pp-0":[{"pp-1": 1000, "pp-3": 1003}'),
('AAAAA@7##', '{"pp-0":[{"pp-1": 1000, "pp-3": 1003}')]
Cuando uso el siguiente código
re.findall(r"(AAAAA@\d+##)({.*?}!!)", x['d'])
Segundo resultado
[('AAAAA@5##',
'{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11":
1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}!!'),
('AAAAA@6##',
'{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11":
1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}!!')]
Mostrar solo dos registros
Mi resultado esperado
[('AAAAA@5##',
'{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11":
1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}!!'),
('AAAAA@6##',
'{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11":
1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}!!'),
('AAAAA@7##',
'{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11":
1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}')]
import re
x = {'d':'AAAAA@5##{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11": 1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}!!AAAAA@6##{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11": 1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}!!AAAAA@7##{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11": 1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}'}
# simply split the json by !! using str.split() method
# then find the groups
# group 1 --> (.*##)
# group 2--> ({.*})
[re.findall(r'(.*##)({.*})', i)[0] for i in x['d'].split('!!')]
[('AAAAA@5##',
'{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11": 1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}'),
('AAAAA@6##',
'{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11": 1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}'),
('AAAAA@7##',
'{"pp-0":[{"pp-1": 1000, "pp-3": 1003},{"pp-4": 1004, "pp-7": 1007},{"pp-8": 1008, "pp-11": 1011},{"pp-12": 1012,"pp-17": 1015}],"pp-17": 1015,"pp-17": 1015}')]
o usa regex por completo
re.findall(r'([^!]+##)({[^!]+})', x['d'])
Encuentre la explicación de expresiones regulares aquí
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras