Skip to content

Commit 6b5fd80

Browse files
committed
Released json-duplicate-keys v2024.4.20
1 parent b014aa0 commit 6b5fd80

File tree

3 files changed

+57
-4
lines changed

3 files changed

+57
-4
lines changed

README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,27 @@ print(JDKSObject.dumps())
257257
```
258258
---
259259

260+
### JSON_DUPLICATE_KEYS.filter_values(`value`, `separator`="||", `parse_index`="$", `ordered_dict`=False)
261+
262+
- `value`:
263+
- `separator`:
264+
- `parse_index`:
265+
- `ordered_dict`:
266+
```python
267+
import json_duplicate_keys as jdks
268+
269+
Jstr = '{"author": "truocphan", "version": "22.3.3", "version": "latest", "release": [{"version": "latest"}], "snapshot": {"author": "truocphan", "version": "22.3.3", "release": [{"version": "latest"}]}}'
270+
271+
JDKSObject = jdks.loads(Jstr)
272+
273+
print(JDKSObject.filter_values("latest").dumps())
274+
# OUTPUT: {"version": "latest", "release||$0$||version": "latest", "snapshot||release||$0$||version": "latest"}
275+
276+
print(JDKSObject.dumps())
277+
# OUTPUT: {"author": "truocphan", "version": "22.3.3", "version": "latest", "release": [{"version": "latest"}], "snapshot": {"author": "truocphan", "version": "22.3.3", "release": [{"version": "latest"}]}}
278+
```
279+
---
280+
260281
### JSON_DUPLICATE_KEYS.dumps(`dupSign_start`="{{{", `dupSign_end`="}}}", `_isDebug_`=False, `skipkeys`=False, `ensure_ascii`=True, `check_circular`=True, `allow_nan`=True, `cls`=None, `indent`=None, `separators`=None, `default`=None, `sort_keys`=False)
261282
_Serialize a JSON object to a JSON format string_
262283
- `dupSign_start`:
@@ -359,6 +380,10 @@ print(JDKSObject.getObject())
359380
---
360381

361382
## CHANGELOG
383+
#### [json-duplicate-keys v2024.4.20](https://github.com/truocphan/json-duplicate-keys/tree/2024.4.20)
384+
- **New**: _filter_values_
385+
- **Updated**: _filter_keys_
386+
362387
#### [json-duplicate-keys v2024.3.24](https://github.com/truocphan/json-duplicate-keys/tree/2024.3.24)
363388
- **Updated**: _normalize_key_, _loads_, _get_, _set_, _update_, _delete_
364389
---

json_duplicate_keys/__init__.py

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -454,9 +454,37 @@ def filter_keys(self, name, separator="||", parse_index="$", ordered_dict=False)
454454
JDKSObject.flatten(separator=separator, parse_index=parse_index, ordered_dict=ordered_dict)
455455
newJDKSObject = loads("{}", ordered_dict=ordered_dict)
456456

457-
for k in JDKSObject.getObject():
458-
if re.search(name, k):
459-
newJDKSObject.set(k, JDKSObject.get(k, separator="§§"+separator+"§§", parse_index="§§"+parse_index+"§§"), separator="§§"+separator+"§§", parse_index="§§"+parse_index+"§§", ordered_dict=ordered_dict)
457+
for k, v in JDKSObject.getObject().items():
458+
if type(k) == str and type(name) == str:
459+
if re.search(name, k):
460+
newJDKSObject.set(k, v, separator="§§"+separator+"§§", parse_index="§§"+parse_index+"§§", ordered_dict=ordered_dict)
461+
else:
462+
if name == k:
463+
newJDKSObject.set(k, v, separator="§§"+separator+"§§", parse_index="§§"+parse_index+"§§", ordered_dict=ordered_dict)
464+
465+
return newJDKSObject
466+
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
467+
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
468+
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
469+
470+
471+
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
472+
# # # # # # # # # # # # filter_values # # # # # # # # # # # # #
473+
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
474+
def filter_values(self, value, separator="||", parse_index="$", ordered_dict=False):
475+
import re, copy
476+
477+
JDKSObject = copy.deepcopy(self)
478+
JDKSObject.flatten(separator=separator, parse_index=parse_index, ordered_dict=ordered_dict)
479+
newJDKSObject = loads("{}", ordered_dict=ordered_dict)
480+
481+
for k, v in JDKSObject.getObject().items():
482+
if type(v) == str and type(value) == str:
483+
if re.search(value, v):
484+
newJDKSObject.set(k, v, separator="§§"+separator+"§§", parse_index="§§"+parse_index+"§§", ordered_dict=ordered_dict)
485+
else:
486+
if value == v:
487+
newJDKSObject.set(k, v, separator="§§"+separator+"§§", parse_index="§§"+parse_index+"§§", ordered_dict=ordered_dict)
460488

461489
return newJDKSObject
462490
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
setuptools.setup(
44
name="json-duplicate-keys",
5-
version="2024.3.24",
5+
version="2024.4.20",
66
author="TP Cyber Security",
77
license="MIT",
88
author_email="[email protected]",

0 commit comments

Comments
 (0)