python - 导入 JSON 时使用 Python 脚本中的变量

标签 python json python-3.x

我有一个包含以下代码的 Python 文件 main.py,但它给了我错误消息:

day_of_event = '1990-12-25'
shopping_list = ['bread', 'cereal', 'water', 'soda', 'bananas']


with open(store_items.json) as file:
   json_file = json.loads(file)
   report = json_file["report"]

report = json.dumps(report)

以下是 JSON 文件 store_items.json:

{

"report" : "{'title' : 'grocery_report', 'date' : day_of_event, 'grocery_items' : shopping_list}"

}

如何读取 JSON 文件 store_items.json 并将 JSON 变量“report”导入到 Python 文件中,以便与 Python 脚本中的变量 report 等效到以下?

report = {'title' : 'grocery_report', 'date' : '1990-12-25', 'grocery_items' : ['bread', 'cereal', 'water', 'soda', 'bananas']}

最佳答案

要直接从文件中读取,需要json.load而不是json.loadss 代表“字符串”,您正在从文件而不是字符串中读取。 (我同意这些名称可以而且应该更好。)此外,您的文件名需要加引号。完成此操作后,report = json_file["report"] 已经为您提供了您想要的结果。 (.dumps 调用转换回字符串 - 再次,s 表示字符串,而不是写入打开的文件对象 - 因此这不是您想要的。)

关于python - 导入 JSON 时使用 Python 脚本中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58124975/

相关文章:

java - 如何在Java中提取JSON数组的特定字段并将其存储在String中

javascript - 如何动态替换javascript对象属性名

java - 类、方法、实例创建和 Main 相当于 Python 中的 Java

macos - 在 Mac OS X 上以编程方式为 Matplotlib 选择正确的后端

Python 包构建工作正常,但 dist 中的 zip 不包含所有文件

python - 如何避免声明全局变量?

php - 使用 PHP 构造 JSON 输出

python - 使用 StringIO 对象保存 uu.encode/uu.decode 数据

python - Curl 可以工作,但 python requests 不行

python-3.x - 在 setup.py 中找出这个包是从哪个存储库安装的?