Comments (2)
Thanks for the advice, the JSON is from the external service, so I have no control over it's naming. The solution you have proposed is an viable option. Thanks for the help.
from jsons.
Hi aadamvanko.
First of all, I would strongly advise you not to use self
in Python for anything other than the first parameter of a method. It is against the convention and it is not a descriptive name for a variable either.
jsons
will fail to deserialize into a dataclass with that attribute. However, you could tell jsons
to deserialize an attribute into an attribute with a different name using the key_transformer
argument.
Here's how:
import jsons
import dataclasses
>>> @dataclasses.dataclass
... class MyClass:
... self_: str # Note the underscore
>>> myclassObj = jsons.loads('''{"self":"api/v3/message/0"}''', MyClass, key_transformer=lambda key: 'self_' if key == 'self' else key)
MyClass(self_='api/v3/message/0')
The other way round works as well:
>>> jsons.dumps(MyClass('something'), key_transformer=lambda key: 'self' if key == 'self_' else key)
'{"self": "something"}'
Regards,
Ramon
from jsons.
Related Issues (20)
- Literal (and Union[Literal]) support HOT 1
- TypeError: Item in jsons.__all__ must be str, not function HOT 1
- Question about JsonSerializable.json method HOT 2
- Document issue: `dumps` should return a string? HOT 1
- Bug `with_dump` only support `json`, not support `dumps` HOT 2
- DeserializationError when loading into a class with an Optional bson.ObjectID HOT 2
- Optional and Union fields are not handled correctly HOT 2
- UserWarning: Failed to dump attribute after updating python to 3.10 HOT 2
- In nested objects, `load` is only called for the root object instead of being called for each one HOT 1
- How to make `jsons.dump()` treat `bytes` the same as Python3 `str`? HOT 2
- Deserialize JSON into Class - Ignore attributes HOT 3
- SerializationError: object of type 'abc' has no len() HOT 3
- What's the key difference between `jsons` and `pydantic`? HOT 1
- DeserializationError: Invalid type: "decimal.Decimal"
- jsons dumps fields sorted
- Test failure with Python 3.11 HOT 1
- deserialization with jsons to nested classes HOT 1
- Error: got an unexpected keyword argument 'origin'
- dicts are serialized wrongly when assigned to an attribute with an 'Any' type
- Is this project still alive ?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jsons.