gpt4 book ai didi

python - 在Python中读取JSON文件并获取没有不可见字符的值的最佳方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 19:43:49 24 4
gpt4 key购买 nike

我有一个简单的 JSON 文件,我应该将其用作配置文件,它包含使用 MacBook 运行脚本的用户的默认目录:

{
"main_sheet_path": "/Users/jammer/Documents/Studios⁩/⁨CAT/⁨000-WeeklyReports⁩/2020/",
"reference_sheet_path": "/Users/jammer/Documents/DownloadedFiles/"
}

我读取 JSON 文件并使用以下代码获取值:

with open('reportconfig.json','r') as j:
config_data = json.load(j)

main_sheet_path = str(config_data.get('main_sheet_path'))
reference_sheet_path = str(config_data.get('reference_sheet_path'))

在对源文件执行任何操作之前,我使用该路径来检查源文件是否存在:

source_file = 'source.xlsx'
source_file = main_sheet_path + filename
if not os.path.isfile(source_file) :
print ('ERROR: Source file \'' + source_file + '\' NOT FOUND!')
return

请注意,脚本运行时,文件名作为参数输入(有多个文件,脚本必须知道要定位哪一个)。

该文件肯定存在,但脚本似乎从未“看到”它,所以我得到了在上面的代码中打印的“错误”。为什么我觉得有看不见的人物?因为当我将上面“错误”通知中打印的内容复制并粘贴到终端时,文件名的最后几个字符总是被一些不可见的字符替换,并且按退格键会删除光标不应该出现的字符.

我如何确定文件是否存在以及我的问题是读取 JSON 文件而不是目录名称或代码中的其他任何位置?因为我最终放弃了使用 JSON 配置文件,而是使用了这样的配置文件:

#!/usr/local/bin/python3.7
# -*- coding: utf-8 -*-
file_paths = { "main_sheet_path": "/Users/jammer/Documents/Studios⁩/⁨CAT/⁨000-WeeklyReports⁩/2020/",
"reference_sheet_path": "/Users/jammer/Documents/DownloadedFiles/"
}

然后我只需导入文件并获取如下值:

import reportconfig as cfg
main_sheet_path = cfg.file_paths['main_sheet_path']
reference_sheet_path = cfg.file_paths['reference_sheet_path']
...

这个解决方法工作得很好——我没有收到文件不存在的“错误”,而脚本的其余部分按预期执行。当文件不存在时,我得到了我期望的正确的“错误”,复制并粘贴“错误消息”中的完整路径和文件名给了我完整的文件名,然后按退格键删除了正确的字符(没有有趣的行为,没有隐形角色)。

但是谁能告诉我如何正确读取 JSON 文件而不得到那些讨厌的不可见字符?我花了几个小时试图弄清楚它,包括在 stackoverflow 中搜索看似相关的问题,但找不到答案。 TIA!

最佳答案

我认为这段代码中只有一个拼写错误: source_file = '源文件.xlsx'
源文件 = main_sheet_path + 文件名

也许文件名设置为其他不存在的文件,因此会出现错误。尝试设置filename='source.xlsx'

也许会有帮助

关于python - 在Python中读取JSON文件并获取没有不可见字符的值的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60274580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com