在对象指定中转换为JSON输出

2024-06-23 03:18:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要任何人的帮助来格式化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')]

Tags: jsonusccclondonparisuktokyoaaa
1条回答
网友
1楼 · 发布于 2024-06-23 03:18:56

有双引号是因为您将内部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"
        }
    ]
}

相关问题 更多 >

    热门问题