Pandas version checks
-
[X] I have checked that this issue has not already been reported.
-
[X] I have confirmed this bug exists on the latest version of pandas.
-
[ ] I have confirmed this bug exists on the main branch of pandas.
Reproducible Example
import pandas as pd
import json
df = pd.read_json(json.dumps(json_data), orient='table')
Issue Description
When I used df.read_json(json_data), It calls the function pandas._libs.tslibs.parsing.dateutil_parse() in pandas package. The specific path is python3.8/site-packages/pandas/_libs/tslibs/parsing.pyx:692. Then AttributeError occurs: AttributeError: type object 'relativedelta' has no attribute 'relativedelta'
Now I'm desperate to process this json_data, but with this error I can't work with it correctly. Besides, pandas has no setup.py in the root directory, so I can't correct and use my custom adjustment.
DESPERATE to hear from u!!!! And THANKS so much for paying attention to this!
Expected Behavior
The source code uses from dateutil.relativedelta import relativedelta, thus when code in the function says relativedelta.relativedelta, the executor will be confused.
I consider if u can try ret+relativedelta()? Or anything else will work
Installed Versions
Comment From: asishm
Thanks for the report, can you please provide a copy pastable reproducible example? see - https://matthewrocklin.com/minimal-bug-reports
Comment From: cspzyy
Thanks for the report, can you please provide a copy pastable reproducible example? see - https://matthewrocklin.com/minimal-bug-reports
imported libraries are:
import pandas as pd
import json
The trigger json_data is as following, and I write df = pd.read_json(json.dumps(json_data), orient='table') for the data. Then the AttributeError occured. Please check it, thanks a lot!
json_data = {'schema': {'fields': [{'name': 'index', 'type': 'integer'}, {'name': 'Season', 'type': 'string'}, {'name': 'Timeslot_Times_listed_are_Eastern_time', 'type': 'string'}, {'name': 'Season_premiere', 'type': 'string'}, {'name': 'Season_finale', 'type': 'string'}, {'name': 'TV_season', 'type': 'string'}, {'name': 'Ranking', 'type': 'string'}, {'name': 'Viewers_in_millions_of_households', 'type': 'string'}], 'primaryKey': ['index'], 'pandas_version': '1.4.0'}, 'data': [{'index': 0, 'Season': '1st', 'Timeslot_Times_listed_are_Eastern_time': 'Thursday, 10:00 p.m.', 'Season_premiere': 'September 18, 1994', 'Season_finale': 'May 22, 1995', 'TV_season': '1994–1995', 'Ranking': '29', 'Viewers_in_millions_of_households': '11.2'}, {'index': 1, 'Season': '2nd', 'Timeslot_Times_listed_are_Eastern_time': 'Monday 10:00 p.m.', 'Season_premiere': 'September 18, 1995', 'Season_finale': 'May 20, 1996', 'TV_season': '1995–1996', 'Ranking': '24', 'Viewers_in_millions_of_households': '11.4'}, {'index': 2, 'Season': '3rd', 'Timeslot_Times_listed_are_Eastern_time': 'Monday 10:00 p.m.', 'Season_premiere': 'September 16, 1996', 'Season_finale': 'May 19, 1997', 'TV_season': '1996–1997', 'Ranking': '30', 'Viewers_in_millions_of_households': '10.2'}, {'index': 3, 'Season': '4th', 'Timeslot_Times_listed_are_Eastern_time': 'Wednesday 10:00 p.m.', 'Season_premiere': 'October 1, 1997', 'Season_finale': 'May 13, 1998', 'TV_season': '1997–1998', 'Ranking': '39', 'Viewers_in_millions_of_households': '8.9'}, {'index': 4, 'Season': '5th', 'Timeslot_Times_listed_are_Eastern_time': 'Wednesday 10:00 p.m.', 'Season_premiere': 'September 30, 1998', 'Season_finale': 'May 19, 1999', 'TV_season': '1998–1999', 'Ranking': '73', 'Viewers_in_millions_of_households': '9.9'}]}
Comment From: cspzyy
But that's okay, I'm trying handling this json_data with raw python code. Thanks for your attention again!
Also, wish u guys to fix this up in the future.^_^
Comment From: ritwizsinha
take
Comment From: ritwizsinha
@cspzyy I am a bit confused, what the issue is here, I created the json_data in python code and passed it through to the read_json function. It simply errored out saying it needed a file. Thus had to wrap the string in the StringIO and then there were no issues
json_data = {'schema': {'fields': [{'name': 'index', 'type': 'integer'}, {'name': 'Season', 'type': 'string'}, {'name': 'Timeslot_Times_listed_are_Eastern_time', 'type': 'string'}, {'name': 'Season_premiere', 'type': 'string'}, {'name': 'Season_finale', 'type': 'string'}, {'name': 'TV_season', 'type': 'string'}, {'name': 'Ranking', 'type': 'string'}, {'name': 'Viewers_in_millions_of_households', 'type': 'string'}], 'primaryKey': ['index'], 'pandas_version': '1.4.0'}, 'data': [{'index': 0, 'Season': '1st', 'Timeslot_Times_listed_are_Eastern_time': 'Thursday, 10:00 p.m.', 'Season_premiere': 'September 18, 1994', 'Season_finale': 'May 22, 1995', 'TV_season': '1994–1995', 'Ranking': '29', 'Viewers_in_millions_of_households': '11.2'}, {'index': 1, 'Season': '2nd', 'Timeslot_Times_listed_are_Eastern_time': 'Monday 10:00 p.m.', 'Season_premiere': 'September 18, 1995', 'Season_finale': 'May 20, 1996', 'TV_season': '1995–1996', 'Ranking': '24', 'Viewers_in_millions_of_households': '11.4'}, {'index': 2, 'Season': '3rd', 'Timeslot_Times_listed_are_Eastern_time': 'Monday 10:00 p.m.', 'Season_premiere': 'September 16, 1996', 'Season_finale': 'May 19, 1997', 'TV_season': '1996–1997', 'Ranking': '30', 'Viewers_in_millions_of_households': '10.2'}, {'index': 3, 'Season': '4th', 'Timeslot_Times_listed_are_Eastern_time': 'Wednesday 10:00 p.m.', 'Season_premiere': 'October 1, 1997', 'Season_finale': 'May 13, 1998', 'TV_season': '1997–1998', 'Ranking': '39', 'Viewers_in_millions_of_households': '8.9'}, {'index': 4, 'Season': '5th', 'Timeslot_Times_listed_are_Eastern_time': 'Wednesday 10:00 p.m.', 'Season_premiere': 'September 30, 1998', 'Season_finale': 'May 19, 1999', 'TV_season': '1998–1999', 'Ranking': '73', 'Viewers_in_millions_of_households': '9.9'}]}
import pandas as pd
import json
from io import StringIO
df = pd.read_json(StringIO(json.dumps(json_data)), orient='table')
print(df)
I am on the latest version in main, maybe this issue has already been fixed?