簡體   English   中英

使用python將CSV轉換為JSON並使用分隔符“|”分割csv

[英]Convert CSV to JSON with python and split the csv with seperator "|"

schoolname|category|gender|medium_of_inst|address|area|pincode|landmark
----------+----------+----------+----------+----------+----------+------
qqq|qqq|qq|aa|asd|wer|asd|wert
www|fgh|qq|aa|sg|wer|asd|wert
eee|fxg|qq|aa|axcvsd|wer|asd|wert

如何刪除第二行並拆分“|” 並將其轉換為 json

試試下面的代碼。 首先用\\n分割字符串並刪除第二行,然后用|分割 . 希望這會有所幫助。

import json

strings = '''schoolname|category|gender|medium_of_inst|address|area|pincode|landmark
----------+----------+----------+----------+----------+----------+------
qqq|qqq|qq|aa|asd|wer|asd|wert
www|fgh|qq|aa|sg|wer|asd|wert
eee|fxg|qq|aa|axcvsd|wer|asd|wert'''

json_file_name = 'test.json'

strings = strings.split('\n') #Split the string by newline \n
del strings[0] #Remove the heading columns
del strings[0] #Remove the string starts with ----------+
data = []

try:
  for string in strings:
    row = string.split('|') #Split and write to json 
    row_data = {};
    row_data['schoolname'] = row[0]
    row_data['category'] = row[1]
    row_data['gender'] = row[2]
    row_data['medium_of_inst'] = row[3]
    row_data['address'] = row[4]
    row_data['area'] = row[5]
    row_data['pincode'] = row[6]
    row_data['landmark'] = row[7]
    data.append(row_data)

  with open(json_file_name, 'w') as outfile:
    json.dump(data, outfile)

  #Use the below to read the file  
  with open(json_file_name) as file_object:
    # store file data in object
    data = json.load(file_object)
    print(data)

except Exception as e:
      print("Type error: " + str(e)) 

輸出

[
  {
    'schoolname': 'qqq',
    'category': 'qqq',
    'gender': 'qq',
    'medium_of_inst': 'aa',
    'address': 'asd',
    'area': 'wer',
    'pincode': 'asd',
    'landmark': 'wert'
  },
  {
    'schoolname': 'www',
    'category': 'fgh',
    'gender': 'qq',
    'medium_of_inst': 'aa',
    'address': 'sg',
    'area': 'wer',
    'pincode': 'asd',
    'landmark': 'wert'
  },
  {
    'schoolname': 'eee',
    'category': 'fxg',
    'gender': 'qq',
    'medium_of_inst': 'aa',
    'address': 'axcvsd',
    'area': 'wer',
    'pincode': 'asd',
    'landmark': 'wert'
  }
]

以下是可以幫助您的片段:

import pandas as pd

df = pd.read_csv('test_old.csv',skiprows=2, 
  names=['schoolname', 'category', 'gender','medium_of_inst',
         'address','area','pincode','landmark'],   
       sep='|', engine='python')

json_output = df.to_json(orient='records')[1:-1].replace('},{', '} {')

print(json_output)

輸出 :

[ { "schoolname":"qqq", "category":"qqq", "gender":"qq", "medium_of_inst":"aa", "address":"asd", "area":"wer", "pincode":"asd", "landmark":"wert" }, { "schoolname":"www", "category":"fgh", "gender":"qq", "medium_of_inst":"aa", "address":"sg", "area":"wer", "pincode":"asd", "landmark":"wert" }, { "schoolname":"eee", "category":"fxg", "gender":"qq", "medium_of_inst":"aa", "address":"axcvsd", "area":"wer", "pincode":"asd", "landmark":"wert" } ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM