Python列表转JSON值后读取文本文件出现空格冗余问题
解决JSON导出导入后出现冗余换行/字符的问题
问题根源
你写入文件时错误地遍历了JSON字符串的每个字符,并给每个字符添加了换行符,导致原本的JSON结构被拆分成单个字符加换行的形式。pd.read_json读取时将这些换行符和零散字符识别为数据内容,最终出现大量\r\n冗余。
修正方案
直接将完整的JSON字符串写入文件,无需循环单个字符:
import pandas as pd import datetime import json date = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") item = 'bike' price = '10' new_item = [date, item, price] data = [new_item] jsondata = json.dumps(data) # 直接写入完整JSON字符串,去掉循环单个字符的逻辑 with open("file.txt", 'w') as output: output.write(jsondata) # 重新导入并设置列名 df = pd.read_json("file.txt") df.columns = ["Datetime", "Item", "Cost"] print(df)
更简洁的实现方式
直接使用pandas的to_json和read_json处理,无需手动拼接JSON:
import pandas as pd import datetime date = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") item = 'bike' price = '10' # 直接构造DataFrame df = pd.DataFrame([[date, item, price]], columns=["Datetime", "Item", "Cost"]) # 导出为JSON文件 df.to_json("file.txt", orient='values') # 重新导入 df_loaded = pd.read_json("file.txt", orient='values') df_loaded.columns = ["Datetime", "Item", "Cost"] print(df_loaded)
运行结果
两种方式都会得到符合预期的输出:
Datetime Item Cost 0 2024-XX-XX XX:XX:XX bike 10
内容的提问来源于stack exchange,提问作者tonydanza123
相关产品推荐
相关产品推荐

