我是Python的新手,无法找到我的问题的答案(虽然我可能用词错误)。
将JSON文件转换为CSV文件。其中一个列值为**[999-999-9999]**的文件,但我需要删除两端的方括号。我研究了一下,发现我可以使用re.sub,但是必须在我的数据集上使用str(),因为如果不使用str(),数据将保留括号。但是,现在它不会再将输出文件保存到csv。有人能告诉我正确的方向吗?
x1c 0d1x的数据
import pandas as pd
import json
import re
with open(r'C:\Users\RKM\Documents\json_file.json') as f:
data = json.load(f)
df = pd.json_normalize(data, record_path =['value'])
df_clean = re.sub(r"[\([{})\]]", "", str(df))
df_clean.to_csv(r'C:\Users\RKM\Documents\output_file.csv', index=False, na_rep="NULL")
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In[146], line 10
8 df = pd.json_normalize(data, record_path =['value'])
9 df_clean = re.sub(r"[\([{})\]]", "", str(df))
---> 10 df_clean.to_csv(r'C:\Users\RKM\Documents\output_file.csv', index=False, na_rep="NULL")
AttributeError: 'str' object has no attribute 'to_csv'
字符串
我尝试不使用str(dt)而只使用dt,但它无法从输出csv文件中删除方括号。我希望它被删除,所以尝试了str(dt),但现在它给了我'str'对象没有属性'to_csv'的错误。
**编辑以添加:**我将代码更新到下面。我treid pd.DataFrame和.to_frame(),但它说:ValueError:未正确调用DataFrame构造函数!
import pandas as pd
import json
import re
with open(r'C:\Users\RKM\Documents\json_file.json') as f:
data = json.load(f)
base_df = pd.json_normalize(data, record_path =['value'])
base_df_clean = re.sub(r"[\([{})\]]", "", str(df))
#df = base_df_clean.to_frame()
df = pd.DataFrame(base_df_clean)
print(df)
df_clean.to_csv(r'C:\Users\RKM\Documents\output_file.csv', index=False, na_rep="NULL")
型
1条答案
按热度按时间wfauudbj1#
基于没有给出样本数据的假设,您可以使用.explode():
字符串
输出量:
型