पायथन: शब्दकोशों की सूची को जसन में परिवर्तित करना


85

मेरे पास शब्दकोशों की एक सूची है, कुछ इस तरह से देख रहे हैं:

list = [{'id': 123, 'data': 'qwerty', 'indices': [1,10]}, {'id': 345, 'data': 'mnbvc', 'indices': [2,11]}]

और इसी तरह। सूची में अधिक दस्तावेज हो सकते हैं। मुझे इन्हें एक JSON दस्तावेज़ में बदलने की आवश्यकता है, जिसे बोतल के माध्यम से लौटाया जा सकता है, और मैं यह नहीं समझ सकता कि यह कैसे करना है। कृपया मदद करे। मैंने इस वेबसाइट पर इसी तरह के प्रश्न देखे, लेकिन मैं वहाँ के समाधानों को नहीं समझ सका।

जवाबों:


124

json पुस्तकालय का उपयोग करें

import json
json.dumps(list)

वैसे, आप चर सूची को दूसरे नाम में बदलने पर विचार listकर सकते हैं, सूची निर्माण के लिए बिल्टइन फ़ंक्शन है, यदि आप चर नाम नहीं बदलते हैं तो आपको कुछ अप्रत्याशित व्यवहार या कुछ छोटी-मोटी कोड मिल सकते हैं।


1
ठीक है। यह सिर्फ एक नमूना है, और मैं इसके लिए mylist नाम का उपयोग कर रहा हूं। क्या डंप () सूचियों के लिए भी काम करता है? मैंने सोचा था कि यह केवल dicts के लिए इस्तेमाल किया जाना चाहिए था।
अपूर्व आशुतोष 10

क्या फ़ाइल को JSON कॉलम अर्रे या JSON पंक्ति सरणी के रूप में सहेजना संभव है?
अनूप टॉफी

नोट: सूची (सूची = [1,2,3]) को फिर से असाइन करने की बिल्ट विधि सूची () के साथ संघर्ष। कृपया, इसे याद रखो।
निखिल स्वामी

27
import json

list = [{'id': 123, 'data': 'qwerty', 'indices': [1,10]}, {'id': 345, 'data': 'mnbvc', 'indices': [2,11]}]

Json फाइल में लिखें:

with open('/home/ubuntu/test.json', 'w') as fout:
    json.dump(list , fout)

पढ़ें Json फ़ाइल:

with open(r"/home/ubuntu/test.json", "r") as read_file:
    data = json.load(read_file)
print(data)
#list = [{'id': 123, 'data': 'qwerty', 'indices': [1,10]}, {'id': 345, 'data': 'mnbvc', 'indices': [2,11]}]

नोट: सूची (सूची = [1,2,3]) को फिर से असाइन करने की बिल्ट विधि सूची () के साथ संघर्ष। कृपया, इसे याद रखो।
निखिल स्वामी

1
response_json = ("{ \"response_json\":" + str(list_of_dict)+ "}").replace("\'","\"")
response_json = json.dumps(response_json)
response_json = json.loads(response_json)

2
नमस्ते! हालांकि यह ओपी की समस्या को हल कर सकता है, यह आमतौर पर एसओ पर केवल उत्तर कोड लिखने के लिए हतोत्साहित किया जाता है। कृपया कुछ स्पष्टीकरण प्रदान करें कि यह समस्या का समाधान क्यों है क्योंकि यह ओपी को बेहतर समझने में मदद करेगा और साइट के भावी आगंतुकों को लाभान्वित करेगा। धन्यवाद!
d_kennetz

0

कुछ निश्चित कुंजियों के मूल्य के साथ इसे एक शब्दकोश में बदलने के लिए, आप नीचे दिए गए कोड का उपयोग कर सकते हैं।

data = ListOfDict.copy()
PrecedingText = "Obs_"
ListOfDictAsDict = {}
for i in range(len(data)):
    ListOfDictAsDict[PrecedingText + str(i)] = data[i]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.