我需要任何人的帮助来格式化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 :(得分: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'}]}
如果您希望所有内容都为字符串,并且引号为double("),则可以使用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"
}
]
}