मैं निम्नलिखित कोड वाली फ़ाइल में डेटा लिखने की कोशिश कर रहा हूं:

#!/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}

प्रिंट स्टेटमेंट वह लौटाता है जो मैं इसके अलावा करता हूं: 14:26 2020-12-12। मैंने f.write() के साथ भी यही तरीका आजमाया है, लेकिन यह दोनों मानों को None के रूप में लौटाता है। यह एक रास्पबेरी पाई पर चलाया जा रहा है। सही मान क्यों नहीं लिखे जा रहे हैं?

--संपादित करें-- मैं जिस जेसन स्ट्रिंग को देखने की उम्मीद करता हूं वह निम्न है: {'time':'14:26','date':'2020-12-12'}

0
Anthony Jones 12 पद 2020, 22:46
1
कृपया अपने प्रश्न को सटीक जसन स्ट्रिंग के साथ अपडेट करें जिसे आप अपनी फ़ाइल में देखने की उम्मीद करते हैं।
 – 
quamrana
12 पद 2020, 22:49
प्रश्न अद्यतन किया। शुक्रिया
 – 
Anthony Jones
12 पद 2020, 22:53
ठीक है, समस्या का एक हिस्सा यह है कि आप जो उम्मीद कर रहे हैं वह वास्तव में 'json' नहीं है, इसलिए json.dump() इसका उत्पादन नहीं कर सकता है। क्या आपका मतलब यह था: data = {'time':str(alarm_time), 'date':str(alarm_date)} ?
 – 
quamrana
12 पद 2020, 22:53
हाँ, मैं क्षमा चाहता हूँ। वही तो मेरा मतलब था। getvalue() डेटा को एक स्ट्रिंग के रूप में लौटाता है।
 – 
Anthony Jones
12 पद 2020, 22:58

1 उत्तर

सबसे बढ़िया उत्तर

शायद आपका मतलब था:

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

मैं आपकी फ़ाइल सामग्री को इस तरह देखने की अपेक्षा करता हूं:

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

दोहरे उद्धरण चिह्नों पर ध्यान दें: "json इन चीजों के बारे में बहुत सख्त है, इसलिए एक फ़ाइल में सिंगल कोट्स ' रखने और json को पार्स करने की अपेक्षा करने में खुद को मूर्ख मत बनाओ।

0
quamrana 12 पद 2020, 23:03
मैंने यह संपादन किया है, लेकिन मुझे अभी भी स्क्रिप्ट मिल रही है जो फ़ाइल में नल का आउटपुट है।
 – 
Anthony Jones
12 पद 2020, 23:12
यदि आप json.dump(data,f) के ठीक पहले print(data) जोड़ते हैं तो क्या होगा?
 – 
quamrana
12 पद 2020, 23:15
स्क्रीन वह आउटपुट दिखाती है जो मुझे चाहिए {'time': '15:18', 'date': '2020-12-12'}, लेकिन जब मैं फ़ाइल में जाता हूं तो आउटपुट {'time': null, 'date': null} होता है
 – 
Anthony Jones
12 पद 2020, 23:20
बस यहाँ सावधान! जैसा कि मैंने पहले ही कहा है, यदि आप देख रहे हैं: 'time' आदि आप json नहीं देख रहे हैं और json मॉड्यूल ऐसा नहीं बना सकता है।
 – 
quamrana
12 पद 2020, 23:21
आप बिल्कुल सही कह रहे हैं, मैं जिस फ़ाइल को देख रहा हूँ {"time": null, "date": null}
 – 
Anthony Jones
12 पद 2020, 23:24