Comments (4)
You can achieve this using the default_handler
in df.to_json
.
pd.DataFrame({"uuid": [uuid.uuid4()]}).to_json(default_handler=str)
.
Also the stdlib json library (pandas uses a vendored version of ujson iirc) also doesn't serialize uuids natively.
import json
import uuid
json.dumps({"a": uuid.uuid4()}) # raises with TypeError: Object of type UUID is not JSON serializable
json.dumps({"a": uuid.uuid4()}, default=str) # works
from pandas.
@grieve54706 The issue you are encountering arises because pandas does not natively support serialization of uuid.UUID instances to JSON. When you attempt to serialize a DataFrame containing UUID objects using to_json(), it results in encoding errors.
to produce the expected behaviour
u can try out this:-
convert the UUID objects to their string representations before serializing the DataFrame to JSON.
import uuid
import pandas as pd
# Create a DataFrame with a UUID column
df = pd.DataFrame({"uuid": [uuid.uuid4()]})
# Convert UUID objects to strings
df['uuid'] = df['uuid'].astype(str)
# Serialize the DataFrame to JSON
json_data = df.to_json()
print(json_data)
Plz let me know if the above works
thanks
from pandas.
Thanks, guys. I think your suggestions all work.
I provide a tool to connect many databases and put the data into pandas for other people, so I will not know which column is UUID and databases have different data that could be dtype Object too.
I found the orjson serializes UUID to the string by default. Curious, pandas to JSON should follow RFC 4122 too?
from pandas.
Thank you everyone. I will use orjson
to handle UUID.
import orjson
import uuid
import pandas as pd
df = pd.DataFrame({"uuid": [uuid.uuid4()]})
json_data = orjson.loads(orjson.dumps(df.to_dict(orient="split"), option=orjson.OPT_SERIALIZE_UUID))
from pandas.
Related Issues (20)
- BUG: read_sql tries to convert blob/varbinary to string with pyarrow backend HOT 2
- BUG: Pandas squashes 1-dimensional Numpy array with shape (1,) down to a 0-dimensional array HOT 2
- BUG: rolling window with `center=True, min_periods=1` is not symmetric at edges HOT 1
- DOC: Draft PDEPs appear as "Under discussion" in the roadmap
- BUG: Wrong timestamp resolution when parsing timestamp string with comma separated milliseconds HOT 4
- BUILD: HOT 1
- BUG: Series.mul silently returns wrong values with `UInt8` dtype when overflowing the max value range HOT 1
- ENH: Support right hand side operations with Series and custom classes HOT 1
- DOC: New contributor meeting, clarify or remove HOT 4
- BUILD: Pandas 1.5.3 is unusable due to incompatibility with Numpy 2.0.0 HOT 1
- BUG: DatetimeIndex intersection is empty or garbage HOT 4
- BUG: CoW does not seem to work on an index with duplicated labels
- BUG: reset_index() looses the frequency of a DatetimeIndex HOT 2
- ENH: pd.concat with keys and ignore_index=True should raise HOT 1
- BUG: HOT 1
- BUG: Error on to_datetime() after running multiple times in jupyter notebook
- PERF:
- BUG: Error on query function when the column name has # symbol HOT 1
- BUG: Couldn't run sql: 'Connection' object has no attribute 'cursor' HOT 1
- Surprising behavior: set_index cannot set a MultiIndex from a tuple, only a list HOT 3
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 pandas.