You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 17:50:28