এখানে আমার কোড, সত্যিই সহজ জিনিস ...
import csv
import json
csvfile = open('file.csv', 'r')
jsonfile = open('file.json', 'w')
fieldnames = ("FirstName","LastName","IDNumber","Message")
reader = csv.DictReader( csvfile, fieldnames)
out = json.dumps( [ row for row in reader ] )
jsonfile.write(out)
কিছু ক্ষেত্রের নাম ঘোষণা করুন, পাঠক ফাইলটি পড়ার জন্য সিএসভি ব্যবহার করেন এবং ফাইলটি একটি জেএসওএন ফর্ম্যাটে ফেলে দেওয়ার জন্য দায়েরকৃত নামগুলি ব্যবহার করে। সমস্যা এখানে ...
সিএসভি ফাইলে প্রতিটি রেকর্ড আলাদা আলাদা সারিতে থাকে। আমি চাই জেএসএন আউটপুটও একইভাবে হোক। সমস্যাটি হ'ল এটি সমস্ত এক বিশাল দৈর্ঘ্যের লাইনে ফেলে দেয়।
আমি এর মতো কিছু ব্যবহার করার চেষ্টা করেছি for line in csvfile:
এবং তারপরে নীচে আমার কোডটি চালানোর চেষ্টা করেছি reader = csv.DictReader( line, fieldnames)
যার সাহায্যে প্রতিটি লাইনের মধ্য দিয়ে লুপ হয় তবে এটি সম্পূর্ণ একটি ফাইলকে এক লাইনে করে, তারপরে পুরো লাইনটি অন্য লাইনে লুপ করে ... যতক্ষণ না এটি লাইন শেষ না হয় ।
এটি সংশোধন করার জন্য কোনও পরামর্শ?
সম্পাদনা করুন: স্পষ্ট করতে, বর্তমানে আমার কাছে রয়েছে: (প্রতিটি লাইনে 1 নথি)
[{"FirstName":"John","LastName":"Doe","IDNumber":"123","Message":"None"},{"FirstName":"George","LastName":"Washington","IDNumber":"001","Message":"Something"}]
আমি যা খুঁজছি: (2 লাইনে 2 টি রেকর্ড)
{"FirstName":"John","LastName":"Doe","IDNumber":"123","Message":"None"}
{"FirstName":"George","LastName":"Washington","IDNumber":"001","Message":"Something"}
প্রতিটি পৃথক ক্ষেত্র পৃথক লাইনে ইন্ডেন্ট করা / নয়, তবে এর নিজস্ব লাইনের প্রতিটি রেকর্ড।
কিছু নমুনা ইনপুট।
"John","Doe","001","Message1"
"George","Washington","002","Message2"
[{..row..},{..row..},...]
নয়{..row..}{..row..}..
। এটি বলার অপেক্ষা রাখে না যে আউটপুটটিকে দেখে মনে হচ্ছে এটি জসন অবজেক্টগুলির একটি জসন অ্যারে হবে, সংযুক্ত সংযুক্ত জসন বস্তুর স্ট্রিম নয়।