首页 > 解决方案 > Python写入文件和json返回None/null而不是值

问题描述

我正在尝试使用以下代码将数据写入文件

#!/usr/bin/python37all
print('Content-type: text/html\n\n')
import cgi
from Alarm import *
import json

htmldata = cgi.FieldStorage()
alarm_time = htmldata.getvalue('alarm_time')
alarm_date = htmldata.getvalue('alarm_date')
print(alarm_time,alarm_date)
data = {'time':alarm_time,'date':alarm_date}
# print(data['time'],data['date'])

with open('alarm_data.txt','w') as f:
    json.dump(data,f)
...

但是当打开文件时,我得到以下输出: {'time':null,'date':null}

print 语句将我除了它之外的内容返回到:14:26 2020-12-12。我已经尝试过同样的方法,f.write()但它返回两个值作为None. 这是在树莓派上运行的。为什么没有写入正确的值?

--EDIT-- 我希望看到的 json 字符串如下:{'time':'14:26','date':'2020-12-12'}

标签: pythonjsonraspberry-picgi

解决方案


也许你的意思是:

data = {'time':str(alarm_time), 'date':str(alarm_date)}

我希望看到你的文件内容是这样的:

{"time":"14:26","date":"2020-12-12"}

注意双引号:". json对这些事情非常严格,所以不要欺骗自己'在文件中使用单引号并期望json解析它。


推荐阅读