2016-02-20 2 views
0

Пожалуйста, мне нужна помощь от кого-либо, чтобы отформатировать выход json-файла. Благодаря Ожидаемый выходВыход Pandas на 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). Я не уверен, каков ваш DataFrame, но вы можете попробовать json_dict[date_range] = dup_date.to_dict(orient='records')?

Если я предполагаю, что вы dataframe правильно:

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

Смежные вопросы