Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json Python:删除[]字符,并添加新行_Json_Python 3.x_Csv_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Json,Python 3.x,Csv,elasticsearch" /> elasticsearch,Json,Python 3.x,Csv,elasticsearch" />

Json Python:删除[]字符,并添加新行

Json Python:删除[]字符,并添加新行,json,python-3.x,csv,elasticsearch,Json,Python 3.x,Csv,elasticsearch,我能够成功地将csv转换为json。我还试图将数据上传到ElasticSearch,因此格式略有不同,这就是为什么我需要将其转换为不同类型的json格式 因此,我试图从json文件中删除开头和结尾“[”和“]” 此外,我正在尝试为数据行的每一行插入“{”索引“{}” 创建新的线条,就像漂亮的印花一样 数据: id,team_name,team_members 123,"Biology, Neurobiology ","Ali Smith, Jon Doe" 234,Mathematics,Jan

我能够成功地将csv转换为json。我还试图将数据上传到ElasticSearch,因此格式略有不同,这就是为什么我需要将其转换为不同类型的json格式

  • 因此,我试图从json文件中删除开头和结尾“[”和“]”
  • 此外,我正在尝试为数据行的每一行插入“{”索引“{}”
  • 创建新的线条,就像漂亮的印花一样
  • 数据:

    id,team_name,team_members
    123,"Biology, Neurobiology ","Ali Smith, Jon Doe"
    234,Mathematics,Jane Smith 
    345,"Statistics, Probability","Matt P, Albert Shaw"
    456,Chemistry,"Andrew M, Matt Shaw, Ali Smith"
    678,Physics,"Joe Doe, Jane Smith, Ali Smith "
    
    代码:

    import csv
    import sys
    import json
    
    #EDIT THIS LIST WITH YOUR REQUIRED JSON KEY NAMES
    fieldnames=["id","team_name","team_members"]
    
    def convert(filename):
     csv_filename = filename[0]
     print "Opening CSV file: ",csv_filename
     f=open(csv_filename, 'r')
     next(f) #skip the headers
     csv_reader = csv.DictReader(f,fieldnames)
     json_filename = csv_filename.split(".")[0]+".json"
     print "Saving JSON to file: ",json_filename
     jsonf = open(json_filename,'w')
     data = json.dumps([r for r in csv_reader])
     jsonf.write(data)
     f.close()
     jsonf.close()
    
    if __name__=="__main__":
     convert(sys.argv[1:])
    
     # How to run?: python csvtojsonfile.py myCSVfile.csv
    
    电流输出:

    [{"team_name": "Biology, Neurobiology ", "team_members": "Ali Smith, Jon Doe", "id": "123"}, {"team_name": "Mathematics", "team_members": "Jane Smith ", "id": "234"}, {"team_name": "Statistics, Probability", "team_members": "Matt P, Albert Shaw", "id": "345"}, {"team_name": "Chemistry", "team_members": "Andrew M, Matt Shaw, Ali Smith", "id": "456"}, {"team_name": "Physics", "team_members": "Joe Doe, Jane Smith, Ali Smith ", "id": "678"}]
    
    所需的最终产出:

    {"index" : {}}
    {"team_name": "Biology, Neurobiology ", "team_members": "Ali Smith, Jon Doe", "id": "123"}
    {"index" : {}}
    {"team_name": "Mathematics", "team_members": "Jane Smith ", "id": "234"}
    {"index" : {}}
    {"team_name": "Statistics, Probability", "team_members": "Matt P, Albert Shaw", "id": "345"}
    {"index" : {}}
    {"team_name": "Chemistry", "team_members": "Andrew M, Matt Shaw, Ali Smith", "id": "456"}
    {"index" : {}}
    {"team_name": "Physics", "team_members": "Joe Doe, Jane Smith, Ali Smith ", "id": "678"}
    

    注意:我删除了逗号,创建了“{”索引“{}”,并创建了新行。我感谢你的帮助

    如果你想这样打印,你可以像这样在列表上循环

    for i in data:
        print("index {}")
        print(i)
    
    如果希望文件中的外观与此类似,可以使用dumps参数来更改外观,但不能删除“[]”

    json.dump(jsonf, [r for r in csv_reader], indent=2)# this will output to a file, you don't need a .write()