2016-02-20 28 views
0

請問我需要任何人的幫助來格式化json文件的輸出。由於 預期的輸出熊貓到JSON輸出的具體對象

{ 
    "2001-02-17": [ 
     {"ArCiCo": "Paris_France", "AuthorID": "CCC", "DptCiCo": "Tokyo_Japan"} 
    ], 
    "2001-03-03": [ 
     {"ArCiCo": "London_UK", "AuthorID": "EEE", "DptCiCo": "Berlin_Germany"} 
    ], 
    "2001-03-10": [ 
     {"ArCiCo": "Lagos_Nigeria", "AuthorID": "BBB", "DptCiCo": "London_UK"}, 
     {"ArCiCo": "Tokyo_Japan", "AuthorID": "CCC", "DptCiCo": "NewYork_US"}, 
     {"ArCiCo": "Nairobi_Kenya", "AuthorID": "DDD", "DptCiCo": "NewYork_US"} 
    ], 
    "2001-03-12": [ 
     {"ArCiCo": "Paris_France", "AuthorID": "AAA", "DptCiCo": "NewYork_US"} 
    ], 
    "2001-04-08": [ 
     {"ArCiCo": "Paris_France", "AuthorID": "EEE", "DptCiCo": "London_UK"} 
    ], 
    "2001-04-10": [ 
     {"ArCiCo": "NewYork_US", "AuthorID": "AAA", "DptCiCo": "Tokyo_Japan"} 
    ] 
} 

目前這是輸出,我有雙引號(」「)之前{後}和我有一個單引號每個值('')。我希望輸出看起來像預期的輸出。

{ 
    "2001-02-17": [ 
     **"**{'ArCiCo': 'Paris_France', 'AuthorID': 'CCC', 'DptCiCo': 'Tokyo_Japan'}**"** 
    ], 
    "2001-03-03": [ 
     "{'ArCiCo': 'London_UK', 'AuthorID': 'EEE', 'DptCiCo': 'Berlin_Germany'}" 
    ], 
    "2001-03-10": [ 
     "{'ArCiCo': 'Lagos_Nigeria', 'AuthorID': 'BBB', 'DptCiCo': 'London_UK'}", 
     "{'ArCiCo': 'Tokyo_Japan', 'AuthorID': 'CCC', 'DptCiCo': 'NewYork_US'}", 
     "{'ArCiCo': 'Nairobi_Kenya', 'AuthorID': 'DDD', 'DptCiCo': 'NewYork_US'}" 
    ], 
    "2001-03-12": [ 
     "{'ArCiCo': 'Paris_France', 'AuthorID': 'AAA', 'DptCiCo': 'NewYork_US'}" 
    ], 
    "2001-04-08": [ 
     "{'ArCiCo': 'Paris_France', 'AuthorID': 'EEE', 'DptCiCo': 'London_UK'}" 
    ], 
    "2001-04-10": [ 
     "{'ArCiCo': 'NewYork_US', 'AuthorID': 'AAA', 'DptCiCo': 'Tokyo_Japan'}" 
    ] 
} 

這是所生產的輸出

json_dict[date_range]= [str(v) for v in dup_date.to_dict(orient='records')] 
+0

你試過'to_json()'? – RootTwo

回答

0

有雙引號,因爲你轉換內dict成字符串str(v)的代碼示例。我不確定你的數據框是什麼樣的,但你可以試試json_dict[date_range] = dup_date.to_dict(orient='records')

如果我猜你數據框中正確:

print df 
        ArCiCo AuthorID   DptCiCo 
2001-02-17 Paris_France  CCC  Tokyo_Japan 
2001-03-03  London_UK  EEE Berlin_Germany 
2001-03-10 Lagos_Nigeria  BBB  London_UK 
2001-03-10 Tokyo_Japan  CCC  NewYork_US 
2001-03-10 Nairobi_Kenya  DDD  NewYork_US 
2001-03-12 Paris_France  AAA  NewYork_US 
2001-04-08 Paris_France  EEE  London_UK 
2001-04-10  NewYork_US  AAA  Tokyo_Japan 

然後,你可以做以下

dct = {dt : subdf.to_dict(orient='records') for dt, subdf in df.groupby(level=0)} 

from pprint import pprint #For printing 
pprint(dct, width=100) 

{'2001-02-17': [{'ArCiCo': 'Paris_France', 'AuthorID': 'CCC', 'DptCiCo': 'Tokyo_Japan'}], 
'2001-03-03': [{'ArCiCo': 'London_UK', 'AuthorID': 'EEE', 'DptCiCo': 'Berlin_Germany'}], 
'2001-03-10': [{'ArCiCo': 'Lagos_Nigeria', 'AuthorID': 'BBB', 'DptCiCo': 'London_UK'}, 
       {'ArCiCo': 'Tokyo_Japan', 'AuthorID': 'CCC', 'DptCiCo': 'NewYork_US'}, 
       {'ArCiCo': 'Nairobi_Kenya', 'AuthorID': 'DDD', 'DptCiCo': 'NewYork_US'}], 
'2001-03-12': [{'ArCiCo': 'Paris_France', 'AuthorID': 'AAA', 'DptCiCo': 'NewYork_US'}], 
'2001-04-08': [{'ArCiCo': 'Paris_France', 'AuthorID': 'EEE', 'DptCiCo': 'London_UK'}], 
'2001-04-10': [{'ArCiCo': 'NewYork_US', 'AuthorID': 'AAA', 'DptCiCo': 'Tokyo_Japan'}]} 

如果你想要的一切作爲一個字符串,並引用是雙引號(「),你可以使用json.dumps

print json.dumps(dct, indent=4, sort_keys=True) 

{ 
    "2001-02-17": [ 
     { 
      "ArCiCo": "Paris_France", 
      "AuthorID": "CCC", 
      "DptCiCo": "Tokyo_Japan" 
     } 
    ], 
    "2001-03-03": [ 
     { 
      "ArCiCo": "London_UK", 
      "AuthorID": "EEE", 
      "DptCiCo": "Berlin_Germany" 
     } 
    ], 
    "2001-03-10": [ 
     { 
      "ArCiCo": "Lagos_Nigeria", 
      "AuthorID": "BBB", 
      "DptCiCo": "London_UK" 
     }, 
     { 
      "ArCiCo": "Tokyo_Japan", 
      "AuthorID": "CCC", 
      "DptCiCo": "NewYork_US" 
     }, 
     { 
      "ArCiCo": "Nairobi_Kenya", 
      "AuthorID": "DDD", 
      "DptCiCo": "NewYork_US" 
     } 
    ], 
    "2001-03-12": [ 
     { 
      "ArCiCo": "Paris_France", 
      "AuthorID": "AAA", 
      "DptCiCo": "NewYork_US" 
     } 
    ], 
    "2001-04-08": [ 
     { 
      "ArCiCo": "Paris_France", 
      "AuthorID": "EEE", 
      "DptCiCo": "London_UK" 
     } 
    ], 
    "2001-04-10": [ 
     { 
      "ArCiCo": "NewYork_US", 
      "AuthorID": "AAA", 
      "DptCiCo": "Tokyo_Japan" 
     } 
    ] 
} 
+0

謝謝,輸出我已經是行爲我想要什麼,我只想在{}和單引號('')周圍刪除(「」)。然後通過在值周圍更改單引號('')來生成相同的輸出,並用雙引號(「」)替換它。 – Payne