【问题标题】:Convert csv file into json file将csv文件转换为json文件
【发布时间】:2021-01-31 05:28:11
【问题描述】:

这是我第一次使用这个平台提出问题,但我总是通过阅读与我类似的问题来解决我的问题,但这次我找不到答案。

上面的 CSV 文件包含 1395 行,这是我正在使用的文件。 我想使用 python 将此 CSV 文件转换为 JSON 文件。我希望 JSON 文件看起来像这样:

 {'data': [{'title': 'جمال خاشقجي',
   'paragraphs': [{'context': 'جمال أحمد حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)، صحفي وإعلامي سعودي، رأس عدّة مناصب لعدد من الصحف في السعودية، وتقلّد منصب مستشار، كما أنّه مدير عام قناة العرب الإخبارية سابقًا.',
     'qas': [{'question': ' - من هو جمال أحمد حمزة خاشقجي؟ ',
       'id': '969331847966',
       'answers': [{'text': 'صحفي وإعلامي', 'answer_start': 73}]},
      {'question': ' - متى ولد جمال أحمد حمزة خاشقجي وتوفي؟ ال',
       'id': '115150665555',
       'answers': [{'text': 'حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)،',
         'answer_start': 10}]},
      {'question': ' - في أي مدينة ولد جمال أحمد حمزة خاشقجي؟ ال',
       'id': '74212080718',
       'answers': [{'text': 'المدينة المنورة', 'answer_start': 39}]}]},
    {'context': 'جمال أحمد حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)، صحفي وإعلامي سعودي، رأس عدّة مناصب لعدد من الصحف في السعودية، وتقلّد منصب مستشار، كما أنّه مدير عام قناة العرب الإخبارية سابقًا. ويكتب عموداً في صحيفة واشنطن بوست منذ 2017، وُصف في الصحف وأجهزة الاعلام العالمية بأنه "وفيّ للدولة السعودية" و"منتقد لسياساتها".',
     'qas': [{'question': ' - في أي صحيفة قام بكتابة عمود منذ عام 2017؟ ال',
       'id': '465699296586',
       'answers': [{'text': 'واشنطن بوست', 'answer_start': 224}]},
      {'question': ' - كيف وصفها في الصحف ووسائل الإعلام الدولية؟ ال',
       'id': '564177542570',
       'answers': [{'text': 'وُصف في الصحف وأجهزة الاعلام العالمية بأنه "وفيّ للدولة السعودية" و"منتقد لسياساتها".',
         'answer_start': 246}]},
      {'question': ' - في أي منصب شغل في الجريدة؟ ال',
       'id': '98945395462',
       'answers': [{'text': 'وتقلّد منصب مستشار،', 'answer_start': 135}]}]},
    {'context': 'غادر خاشقجي السعودية في سبتمبر 2017، وكتب بعد ذلك مقالات صحفية انتقد فيها الحكومة السعودية. انتقد خاشقجي بصورة كبيرة ولي العهد السعودي محمد بن سلمان، والملك سلمان بن عبد العزيز. وكذلك عارض التدخل العسكري في اليمن.',
     'qas': [{'question': ' - متى غادر خاشقجي السعودية؟ ال',
       'id': '838329318053',
       'answers': [{'text': 'في سبتمبر 2017،', 'answer_start': 21}]},
      {'question': ' - لمن ينتقده في مقالاته الإخبارية؟ ال',
       'id': '432910739583',
       'answers': [{'text': 'الحكومة السعودية.', 'answer_start': 74}]},
      {'question': ' - لمن انتقد خاشقجي بشدة في مقالاته الإخبارية؟ ال',
       'id': '619452973730',
       'answers': [{'text': 'ولي العهد السعودي محمد بن سلمان، والملك سلمان بن عبد العزيز.',
         'answer_start': 117}]}]}]},
  {'title': 'السعودية',
   'paragraphs': [{'context': 'السعودية أو (رسميًا: المملكة العربية السعودية) هي دولة عربية، وتعد أكبر دولة في الشرق الأوسط وتقع تحديدًا في الجنوب الغربي من قارة آسيا وتشكل الجزء الأكبر من شبه الجزيرة العربية إذ تبلغ مساحتها حوالي مليوني كيلومتر مربع.',
     'qas': [{'question': ' - أي دولة هي أكبر دولة في الشرق الأوسط؟ ال',
       'id': '333772766499',
       'answers': [{'text': 'المملكة العربية السعودية)', 'answer_start': 21}]},
      {'question': ' - أين تقع المملكة العربية السعودية في آسيا؟ ال',
       'id': '262204981583',
       'answers': [{'text': 'الجنوب الغربي', 'answer_start': 109}]},
      {'question': ' - ما هي مساحة الجزء الأكبر من شبه الجزيرة العربية؟ ال',
       'id': '809283218984',
       'answers': [{'text': 'حوالي مليوني كيلومتر مربع.',
         'answer_start': 194}]}]},
    {'context': 'السعودية ورسميًا المملكة العربية السعودية هي أكبر دولة في الشرق الأوسط وتقع تحديدًا في الجنوب الغربي من قارة آسيا وتشكل الجزء الأكبر من شبه الجزيرة العربية إذ تبلغ مساحتها حوالي مليوني كيلومتر مربع. يحدها من الشمال العراق والأردن وتحدها الكويت من الشمال الشرقي، ومن الشرق تحدها كل من قطر والإمارات العربية المتحدة بالإضافة إلى البحرين التي ترتبط بالسعودية من خلال جسر الملك فهد الواقع على الخليج العربي، ومن الجنوب تحدها اليمن، وعُمان من الجنوب الشرقي، كما يحدها البحر الأحمر من جهة الغرب.',
     'qas': [{'question': ' - ما هي الحدود في الشمال؟ ال',
       'id': '130251388427',
       'answers': [{'text': 'يحدها من الشمال العراق والأردن',
         'answer_start': 199}]},
      {'question': ' - ما هي الحدود في الشمال الشرقي؟ ال',
       'id': '791276760553',
       'answers': [{'text': 'الكويت', 'answer_start': 237}]},
      {'question': ' - ما هي الحدود في الشرق؟ ', ....

但我得到的是:

[{'title': 'جمال خاشقجي', 'paragraphs': [{'context': 'جمال أحمد حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)، صحفي وإعلامي سعودي، رأس عدّة مناصب لعدد من الصحف في السعودية، وتقلّد منصب مستشار، كما أنّه مدير عام قناة العرب الإخبارية سابقًا.', 'qas': [{'question': ' - من هو جمال أحمد حمزة خاشقجي؟ ', 'id': '959884094657', 'answers': [{'text': 'صحفي وإعلامي', 'answer_start': 73}]}]}]}]
[{'title': 'جمال خاشقجي', 'paragraphs': [{'context': 'جمال أحمد حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)، صحفي وإعلامي سعودي، رأس عدّة مناصب لعدد من الصحف في السعودية، وتقلّد منصب مستشار، كما أنّه مدير عام قناة العرب الإخبارية سابقًا.', 'qas': [{'question': ' - متى ولد جمال أحمد حمزة خاشقجي وتوفي؟ ال', 'id': '734996283548', 'answers': [{'text': 'حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)،', 'answer_start': 10}]}]}]}]
[{'title': 'جمال خاشقجي', 'paragraphs': [{'context': 'جمال أحمد حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)، صحفي وإعلامي سعودي، رأس عدّة مناصب لعدد من الصحف في السعودية، وتقلّد منصب مستشار، كما أنّه مدير عام قناة العرب الإخبارية سابقًا.', 'qas': [{'question': ' - في أي مدينة ولد جمال أحمد حمزة خاشقجي؟ ال', 'id': '876483484251', 'answers': [{'text': 'المدينة المنورة', 'answer_start': 39}]}]}]}]
[{'title': 'جمال خاشقجي', 'paragraphs': [{'context': 'جمال أحمد حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)، صحفي وإعلامي سعودي، رأس عدّة مناصب لعدد من الصحف في السعودية، وتقلّد منصب مستشار، كما أنّه مدير عام قناة العرب الإخبارية سابقًا. ويكتب عموداً في صحيفة واشنطن بوست منذ 2017، وُصف في الصحف وأجهزة الاعلام العالمية بأنه "وفيّ للدولة السعودية" و"منتقد لسياساتها".', 'qas': [{'question': ' - في أي صحيفة قام بكتابة عمود منذ عام 2017؟ ال', 'id': '12937627845', 'answers': [{'text': 'واشنطن بوست', 'answer_start': 224}]}]}]}]
[{'title': 'جمال خاشقجي', 'paragraphs': [{'context': 'جمال أحمد حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)، صحفي وإعلامي سعودي، رأس عدّة مناصب لعدد من الصحف في السعودية، وتقلّد منصب مستشار، كما أنّه مدير عام قناة العرب الإخبارية سابقًا. ويكتب عموداً في صحيفة واشنطن بوست منذ 2017، وُصف في الصحف وأجهزة الاعلام العالمية بأنه "وفيّ للدولة السعودية" و"منتقد لسياساتها".', 'qas': [{'question': ' - كيف وصفها في الصحف ووسائل الإعلام الدولية؟ ال', 'id': '198411919509', 'answers': [{'text': 'وُصف في الصحف وأجهزة الاعلام العالمية بأنه "وفيّ للدولة السعودية" و"منتقد لسياساتها".', 'answer_start': 246}]}]}]}]
[{'title': 'جمال خاشقجي', 'paragraphs': [{'context': 'جمال أحمد حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)، صحفي وإعلامي سعودي، رأس عدّة مناصب لعدد من الصحف في السعودية، وتقلّد منصب مستشار، كما أنّه مدير عام قناة العرب الإخبارية سابقًا. ويكتب عموداً في صحيفة واشنطن بوست منذ 2017، وُصف في الصحف وأجهزة الاعلام العالمية بأنه "وفيّ للدولة السعودية" و"منتقد لسياساتها".', 'qas': [{'question': ' - في أي منصب شغل في الجريدة؟ ال', 'id': '341340964648', 'answers': [{'text': 'وتقلّد منصب مستشار،', 'answer_start': 135}]}]}]}]
[{'title': 'جمال خاشقجي', 'paragraphs': [{'context': 'غادر خاشقجي السعودية في سبتمبر 2017، وكتب بعد ذلك مقالات صحفية انتقد فيها الحكومة السعودية. انتقد خاشقجي بصورة كبيرة ولي العهد السعودي محمد بن سلمان، والملك سلمان بن عبد العزيز. وكذلك عارض التدخل العسكري في اليمن.', 'qas': [{'question': ' - متى غادر خاشقجي السعودية؟ ال', 'id': '159529139024', 'answers': [{'text': 'في سبتمبر 2017،', 'answer_start': 21}]}]}]}]
[{'title': 'جمال خاشقجي', 'paragraphs': [{'context': 'غادر خاشقجي السعودية في سبتمبر 2017، وكتب بعد ذلك مقالات صحفية انتقد فيها الحكومة السعودية. انتقد خاشقجي بصورة كبيرة ولي العهد السعودي محمد بن سلمان، والملك سلمان بن عبد العزيز. وكذلك عارض التدخل العسكري في اليمن.', 'qas': [{'question': ' - لمن ينتقده في مقالاته الإخبارية؟ ال', 'id': '199490332552', 'answers': [{'text': 'الحكومة السعودية.', 'answer_start': 74}]}]}]}]
[{'title': 'جمال خاشقجي', 'paragraphs': [{'context': 'غادر خاشقجي السعودية في سبتمبر 2017، وكتب بعد ذلك مقالات صحفية انتقد فيها الحكومة السعودية. انتقد خاشقجي بصورة كبيرة ولي العهد السعودي محمد بن سلمان، والملك سلمان بن عبد العزيز. وكذلك عارض التدخل العسكري في اليمن.', 'qas': [{'question': ' - لمن انتقد خاشقجي بشدة في مقالاته الإخبارية؟ ال', 'id': '170530085422', 'answers': [{'text': 'ولي العهد السعودي محمد بن سلمان، والملك سلمان بن عبد العزيز.', 'answer_start': 117}]}]}]}]
[{'title': 'السعودية', 'paragraphs': [{'context': 'السعودية أو (رسميًا: المملكة العربية السعودية) هي دولة عربية، وتعد أكبر دولة في الشرق الأوسط وتقع تحديدًا في الجنوب الغربي من قارة آسيا وتشكل الجزء الأكبر من شبه الجزيرة العربية إذ تبلغ مساحتها حوالي مليوني كيلومتر مربع.', 'qas': [{'question': ' - أي دولة هي أكبر دولة في الشرق الأوسط؟ ال', 'id': '795896303709', 'answers': [{'text': 'المملكة العربية السعودية)', 'answer_start': 21}]}]}]}]
[{'title': 'السعودية', 'paragraphs': [{'context': 'السعودية أو (رسميًا: المملكة العربية السعودية) هي دولة عربية، وتعد أكبر دولة في الشرق الأوسط وتقع تحديدًا في الجنوب الغربي من قارة آسيا وتشكل الجزء الأكبر من شبه الجزيرة العربية إذ تبلغ مساحتها حوالي مليوني كيلومتر مربع.', 'qas': [{'question': ' - أين تقع المملكة العربية السعودية في آسيا؟ ال', 'id': '117632944204', 'answers': [{'text': 'الجنوب الغربي', 'answer_start': 109}]}]}]}]...

使用下面的代码,每条记录单独显示,如上:

# -*- coding: utf-8 -*-
import csv
import json
from random import randint
MAX_INT = 999999999999


def batch_to_json(fname):
    with open(fname, encoding="utf-8") as f:
        csv_reader = csv.DictReader(f, )
        for row in csv_reader:
            articles = []
            i = j = k = 0
            for i in range(1,2):
                article_title = row["title"]
                paragraphs = []
                for j in range(1,2):
                    paragraph_context = row['context']
                    qas = []
                    for k in range(1,2):
                        id = str(randint(0, MAX_INT))
                        ques = row["question"]
                        ans = row["text"]
                        answer_start = max(paragraph_context.find(ans), 0)
                        answer = {
                            'text': ans,
                            'answer_start': answer_start
                        }
                        question = {
                            'question': ques,
                            'id': id,
                            'answers': [answer]
                        }
                        qas.append(question)
                    paragraph = {
                        'context': paragraph_context,
                        'qas': qas
                    }
                    paragraphs.append(paragraph)
                article ={
                    'title': article_title,
                    'paragraphs': paragraphs
                }
                articles.append(article)
            print(articles)

这是数据的小文本示例:

context,question,answer_start,text,title
جمال أحمد حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)، صحفي وإعلامي سعودي، رأس عدّة مناصب لعدد من الصحف في السعودية، وتقلّد منصب مستشار، كما أنّه مدير عام قناة العرب الإخبارية سابقًا., - من هو جمال أحمد حمزة خاشقجي؟ ,73,صحفي وإعلامي,جمال خاشقجي
جمال أحمد حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)، صحفي وإعلامي سعودي، رأس عدّة مناصب لعدد من الصحف في السعودية، وتقلّد منصب مستشار، كما أنّه مدير عام قناة العرب الإخبارية سابقًا., - متى ولد جمال أحمد حمزة خاشقجي وتوفي؟ ال,10,حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)،,جمال خاشقجي
جمال أحمد حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)، صحفي وإعلامي سعودي، رأس عدّة مناصب لعدد من الصحف في السعودية، وتقلّد منصب مستشار، كما أنّه مدير عام قناة العرب الإخبارية سابقًا., - في أي مدينة ولد جمال أحمد حمزة خاشقجي؟ ال,39,المدينة المنورة,جمال خاشقجي
"جمال أحمد حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)، صحفي وإعلامي سعودي، رأس عدّة مناصب لعدد من الصحف في السعودية، وتقلّد منصب مستشار، كما أنّه مدير عام قناة العرب الإخبارية سابقًا. ويكتب عموداً في صحيفة واشنطن بوست منذ 2017، وُصف في الصحف وأجهزة الاعلام العالمية بأنه ""وفيّ للدولة السعودية"" و""منتقد لسياساتها"".", - في أي صحيفة قام بكتابة عمود منذ عام 2017؟ ال,224,واشنطن بوست,جمال خاشقجي
"جمال أحمد حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)، صحفي وإعلامي سعودي، رأس عدّة مناصب لعدد من الصحف في السعودية، وتقلّد منصب مستشار، كما أنّه مدير عام قناة العرب الإخبارية سابقًا. ويكتب عموداً في صحيفة واشنطن بوست منذ 2017، وُصف في الصحف وأجهزة الاعلام العالمية بأنه ""وفيّ للدولة السعودية"" و""منتقد لسياساتها"".", - كيف وصفها في الصحف ووسائل الإعلام الدولية؟ ال,246,"وُصف في الصحف وأجهزة الاعلام العالمية بأنه ""وفيّ للدولة السعودية"" و""منتقد لسياساتها"".",جمال خاشقجي
"جمال أحمد حمزة خاشقجي (13 أكتوبر 1958، المدينة المنورة - 2 أكتوبر 2018)، صحفي وإعلامي سعودي، رأس عدّة مناصب لعدد من الصحف في السعودية، وتقلّد منصب مستشار، كما أنّه مدير عام قناة العرب الإخبارية سابقًا. ويكتب عموداً في صحيفة واشنطن بوست منذ 2017، وُصف في الصحف وأجهزة الاعلام العالمية بأنه ""وفيّ للدولة السعودية"" و""منتقد لسياساتها"".", - في أي منصب شغل في الجريدة؟ ال,135,وتقلّد منصب مستشار،,جمال خاشقجي
غادر خاشقجي السعودية في سبتمبر 2017، وكتب بعد ذلك مقالات صحفية انتقد فيها الحكومة السعودية. انتقد خاشقجي بصورة كبيرة ولي العهد السعودي محمد بن سلمان، والملك سلمان بن عبد العزيز. وكذلك عارض التدخل العسكري في اليمن., - متى غادر خاشقجي السعودية؟ ال,21,في سبتمبر 2017،,جمال خاشقجي
غادر خاشقجي السعودية في سبتمبر 2017، وكتب بعد ذلك مقالات صحفية انتقد فيها الحكومة السعودية. انتقد خاشقجي بصورة كبيرة ولي العهد السعودي محمد بن سلمان، والملك سلمان بن عبد العزيز. وكذلك عارض التدخل العسكري في اليمن., - لمن ينتقده في مقالاته الإخبارية؟ ال,74,الحكومة السعودية.,جمال خاشقجي
غادر خاشقجي السعودية في سبتمبر 2017، وكتب بعد ذلك مقالات صحفية انتقد فيها الحكومة السعودية. انتقد خاشقجي بصورة كبيرة ولي العهد السعودي محمد بن سلمان، والملك سلمان بن عبد العزيز. وكذلك عارض التدخل العسكري في اليمن., - لمن انتقد خاشقجي بشدة في مقالاته الإخبارية؟ ال,117,ولي العهد السعودي محمد بن سلمان، والملك سلمان بن عبد العزيز.,جمال خاشقجي
السعودية أو (رسميًا: المملكة العربية السعودية) هي دولة عربية، وتعد أكبر دولة في الشرق الأوسط وتقع تحديدًا في الجنوب الغربي من قارة آسيا وتشكل الجزء الأكبر من شبه الجزيرة العربية إذ تبلغ مساحتها حوالي مليوني كيلومتر مربع., - أي دولة هي أكبر دولة في الشرق الأوسط؟ ال,21,المملكة العربية السعودية),السعودية
السعودية أو (رسميًا: المملكة العربية السعودية) هي دولة عربية، وتعد أكبر دولة في الشرق الأوسط وتقع تحديدًا في الجنوب الغربي من قارة آسيا وتشكل الجزء الأكبر من شبه الجزيرة العربية إذ تبلغ مساحتها حوالي مليوني كيلومتر مربع., - أين تقع المملكة العربية السعودية في آسيا؟ ال,109,الجنوب الغربي,السعودية
السعودية أو (رسميًا: المملكة العربية السعودية) هي دولة عربية، وتعد أكبر دولة في الشرق الأوسط وتقع تحديدًا في الجنوب الغربي من قارة آسيا وتشكل الجزء الأكبر من شبه الجزيرة العربية إذ تبلغ مساحتها حوالي مليوني كيلومتر مربع., - ما هي مساحة الجزء الأكبر من شبه الجزيرة العربية؟ ال,194,حوالي مليوني كيلومتر مربع.,السعودية
السعودية ورسميًا المملكة العربية السعودية هي أكبر دولة في الشرق الأوسط وتقع تحديدًا في الجنوب الغربي من قارة آسيا وتشكل الجزء الأكبر من شبه الجزيرة العربية إذ تبلغ مساحتها حوالي مليوني كيلومتر مربع. يحدها من الشمال العراق والأردن وتحدها الكويت من الشمال الشرقي، ومن الشرق تحدها كل من قطر والإمارات العربية المتحدة بالإضافة إلى البحرين التي ترتبط بالسعودية من خلال جسر الملك فهد الواقع على الخليج العربي، ومن الجنوب تحدها اليمن، وعُمان من الجنوب الشرقي، كما يحدها البحر الأحمر من جهة الغرب., - ما هي الحدود في الشمال؟ ال,199,يحدها من الشمال العراق والأردن,السعودية
السعودية ورسميًا المملكة العربية السعودية هي أكبر دولة في الشرق الأوسط وتقع تحديدًا في الجنوب الغربي من قارة آسيا وتشكل الجزء الأكبر من شبه الجزيرة العربية إذ تبلغ مساحتها حوالي مليوني كيلومتر مربع. يحدها من الشمال العراق والأردن وتحدها الكويت من الشمال الشرقي، ومن الشرق تحدها كل من قطر والإمارات العربية المتحدة بالإضافة إلى البحرين التي ترتبط بالسعودية من خلال جسر الملك فهد الواقع على الخليج العربي، ومن الجنوب تحدها اليمن، وعُمان من الجنوب الشرقي، كما يحدها البحر الأحمر من جهة الغرب., - ما هي الحدود في الشمال الشرقي؟ ال,237,الكويت,السعودية
السعودية ورسميًا المملكة العربية السعودية هي أكبر دولة في الشرق الأوسط وتقع تحديدًا في الجنوب الغربي من قارة آسيا وتشكل الجزء الأكبر من شبه الجزيرة العربية إذ تبلغ مساحتها حوالي مليوني كيلومتر مربع. يحدها من الشمال العراق والأردن وتحدها الكويت من الشمال الشرقي، ومن الشرق تحدها كل من قطر والإمارات العربية المتحدة بالإضافة إلى البحرين التي ترتبط بالسعودية من خلال جسر الملك فهد الواقع على الخليج العربي، ومن الجنوب تحدها اليمن، وعُمان من الجنوب الشرقي، كما يحدها البحر الأحمر من جهة الغرب., - ما هي الحدود في الشرق؟ ,284,قطر والإمارات العربية المتحدة بالإضافة إلى البحرين التي ترتبط بالسعودية من خلال جسر الملك,السعودية
"حكم آل سعود تاريخيا في نجد ومناطق واسعة من الجزيرة العربية أكثر من مرة، وتعتبر المملكة السعودية الحالية نتاجًا ووارثة لتلك الكيانات التاريخية، أول تلك الكيانات إمارة الدرعية التي أسسها محمد بن سعود سنة 1157 هـ / 1744 وظلت حتى قاد إبراهيم باشا جيش والي مصر العثماني في حملة للقضاء عليها عام 1233 هـ / 1818م، ويشار إلى تلك المرحلة باسم ""الدولة السعودية الأولى""، ولكن لم يطل الوقت بعد سقوط الدولة الأولى حتى أقام تركي بن عبد الله بن محمد إمارة جديدة لآل سعود في نجد، اتخذت من الرياض عاصمة واستمرت حتى انتزع حكام إمارة حائل إمارة الرياض من آل سعود سنة 1308 هـ / 1891، ويشار إلى تلك المرحلة بـ""الدولة السعودية الثانية"". لاحقًا استرد عبد العزيز آل سعود الشاب سنة 1319 هـ / 1902 إمارة الرياض من يد آل رشيد، وتوسع مسيطرا على كامل نجد 1921 وتسمت بسلطنة نجد حتى نجح عبد العزيز بانتزاع مملكة الحجاز من يد الهاشميين، فنصب ملكا على الحجاز في يناير من عام 1926، وبعدها بعام غيّر لقبه من سلطان نجد إلى ملك نجد، وسميت المناطق التي يسيطر عليها مملكة الحجاز ونجد وملحقاتها، وظلت بذلك الاسم حتى وحد عبد العزيز جميع المناطق التي يسيطر عليها في كيان واحد، وكان ذلك في 1351 هـ / 23 سبتمبر 1932 وأُعلن اسمها ""المملكة العربية السعودية"".", - ما هي الكيانات الأولى في المملكة العربية السعودية؟ ,143,أول تلك الكيانات إمارة الدرعية,السعودية
"حكم آل سعود تاريخيا في نجد ومناطق واسعة من الجزيرة العربية أكثر من مرة، وتعتبر المملكة السعودية الحالية نتاجًا ووارثة لتلك الكيانات التاريخية، أول تلك الكيانات إمارة الدرعية التي أسسها محمد بن سعود سنة 1157 هـ / 1744 وظلت حتى قاد إبراهيم باشا جيش والي مصر العثماني في حملة للقضاء عليها عام 1233 هـ / 1818م، ويشار إلى تلك المرحلة باسم ""الدولة السعودية الأولى""، ولكن لم يطل الوقت بعد سقوط الدولة الأولى حتى أقام تركي بن عبد الله بن محمد إمارة جديدة لآل سعود في نجد، اتخذت من الرياض عاصمة واستمرت حتى انتزع حكام إمارة حائل إمارة الرياض من آل سعود سنة 1308 هـ / 1891، ويشار إلى تلك المرحلة بـ""الدولة السعودية الثانية"". لاحقًا استرد عبد العزيز آل سعود الشاب سنة 1319 هـ / 1902 إمارة الرياض من يد آل رشيد، وتوسع مسيطرا على كامل نجد 1921 وتسمت بسلطنة نجد حتى نجح عبد العزيز بانتزاع مملكة الحجاز من يد الهاشميين، فنصب ملكا على الحجاز في يناير من عام 1926، وبعدها بعام غيّر لقبه من سلطان نجد إلى ملك نجد، وسميت المناطق التي يسيطر عليها مملكة الحجاز ونجد وملحقاتها، وظلت بذلك الاسم حتى وحد عبد العزيز جميع المناطق التي يسيطر عليها في كيان واحد، وكان ذلك في 1351 هـ / 23 سبتمبر 1932 وأُعلن اسمها ""المملكة العربية السعودية"".", - من الذي أسس الكيانات الأولى في المملكة العربية السعودية؟ ال,185,محمد بن سعود,السعودية
"حكم آل سعود تاريخيا في نجد ومناطق واسعة من الجزيرة العربية أكثر من مرة، وتعتبر المملكة السعودية الحالية نتاجًا ووارثة لتلك الكيانات التاريخية، أول تلك الكيانات إمارة الدرعية التي أسسها محمد بن سعود سنة 1157 هـ / 1744 وظلت حتى قاد إبراهيم باشا جيش والي مصر العثماني في حملة للقضاء عليها عام 1233 هـ / 1818م، ويشار إلى تلك المرحلة باسم ""الدولة السعودية الأولى""، ولكن لم يطل الوقت بعد سقوط الدولة الأولى حتى أقام تركي بن عبد الله بن محمد إمارة جديدة لآل سعود في نجد، اتخذت من الرياض عاصمة واستمرت حتى انتزع حكام إمارة حائل إمارة الرياض من آل سعود سنة 1308 هـ / 1891، ويشار إلى تلك المرحلة بـ""الدولة السعودية الثانية"". لاحقًا استرد عبد العزيز آل سعود الشاب سنة 1319 هـ / 1902 إمارة الرياض من يد آل رشيد، وتوسع مسيطرا على كامل نجد 1921 وتسمت بسلطنة نجد حتى نجح عبد العزيز بانتزاع مملكة الحجاز من يد الهاشميين، فنصب ملكا على الحجاز في يناير من عام 1926، وبعدها بعام غيّر لقبه من سلطان نجد إلى ملك نجد، وسميت المناطق التي يسيطر عليها مملكة الحجاز ونجد وملحقاتها، وظلت بذلك الاسم حتى وحد عبد العزيز جميع المناطق التي يسيطر عليها في كيان واحد، وكان ذلك في 1351 هـ / 23 سبتمبر 1932 وأُعلن اسمها ""المملكة العربية السعودية"".", - متى أسس محمد بن سعود أول كيانات في المملكة العربية السعودية؟ ال,198,سنة 1157 هـ / 1744,السعودية

编辑: 所以我想要的是我的 JSON 文件遵循这种格式:

file.json
├── "data"
│   └── [i]
│       ├── "paragraphs"
│       │   └── [j]
│       │       ├── "context": "paragraph text"
│       │       └── "qas"
│       │           └── [k]
│       │               ├── "answers"
│       │               │   └── [l]
│       │               │       ├── "answer_start": N
│       │               │       └── "text": "answer"
│       │               ├── "id": "<uuid>"
│       │               └── "question": "paragraph question?"
│       └── "title": "document id"
└── "version": 1.1 

相反,它将每一行作为一个单独的列表提供给我,其中一些行共享内容和标题,不应再次写入。

【问题讨论】:

  • 您的代码没有正确缩进。请解决这个问题并以文本格式(不是图片/图像)提供一些(小)输入样本。
  • 我添加了一个数据样本并缩进了代码
  • 这是一个很大的改进,但你并没有真正说出你得到的输出有什么问题(也没有确切地说你希望如何将行映射到 json 中)。
  • 现在清楚了吗?
  • 它帮助了一些人,但它只描述了映射的一半,因为它没有解释每行的字段 - context,question,answer_start,text,title - 如何成为键的值。在"answers" 下有一个对[l] 的引用,它没有对应的代码。您在几个地方使用for _ in range(1,2) 有点问题,因为range(1,2) 只产生单一值1。我认为您可能需要尽可能简化您的问题并提供minimal reproducible example

标签: python json csv


【解决方案1】:

如果您有能力使用外部库,请查看Pandas

你可以像pip install pandas这样安装它并像这样使用它

import pandas as pd

df = pd.read_csv (r'/path/to/file.csv')
df.to_json (r'/path/where/to/save/file.json')

# or if you want to use the object, simply return the dataframe as json
json = df.to_json()

编辑:我刚刚意识到您已根据字段对数据进行分组

您可以修改您的数据框df 并将您的数据分组到每一列。


阅读更多关于 pandas groupby 的信息: https://www.geeksforgeeks.org/python-pandas-dataframe-groupby/?ref=rp

geeksforgeeks 链接摘要

# importing pandas as pd 
import pandas as pd 
  
# Creating the dataframe  
df = pd.read_csv("nba.csv") 
  
# Print the dataframe 
df 

然后按球队和球员位置分组

# First grouping based on "Team" 
# Within each team we are grouping based on "Position" 
gkk = df.groupby(['Team', 'Position']) 
  
# Print the first value in each group 
gkk.first()

这段代码和图片是从gfg复制过来的。

【讨论】: