【问题标题】:Remove brackets created by a list through json.dumps()通过 json.dumps() 删除列表创建的括号
【发布时间】:2021-06-28 20:28:41
【问题描述】:

我正在尝试连接到请求以下输入格式的 API:

{
    "clientId":"some_client",
    "apiKey":"some_key",
    "requestTime":1620912445968,
    "sha":"some_sha",
    "owner":"owner@somewhere.com",
    "contacts": [
    {
      "addresseeType": "email",
      "value": "email1@test.pl, email2@test.pl"
    }
  ]
}

我的问题是,如果我的输入是一个列表,当我使用 json.dumps() 时,"value" 内的电子邮件会以括号结尾。我对此的看法如下:

# I need to take the emails from a pandas df
df = pd.DataFrame({'email': ["dan@git.com", "me@git.com"]})

dict_params = {
        "clientId":"some_client",
        "apiKey":"some_key",
        "requestTime": "millis",
        "sha":"some_sha",
        "owner": "owner@somewhere.com",
        "contacts": [
            {
              "addresseeType": "email",
              "value": df["email"].to_list()
              }
            ]
        }

result = json.dumps(dict_params)

这提供了预期的有效 JSON,但这不是我的 API 所要求的,因为电子邮件不能有括号。

结果:

{
  "clientId": "some_client",
  "apiKey": "some_key",
  "requestTime": "millis",
  "sha": "some_sha",
  "owner": "owner@somewhere.com",
  "contacts": [
    {
      "addresseeType": "email",
      "value": [
        "dan@git.com",
        "me@git.com"
      ]
    }
  ]
}

对此的任何帮助表示赞赏!谢谢。

【问题讨论】:

    标签: python json api


    【解决方案1】:

    你应该使用', '.join:

    'value': ', '.join(df['email'])
    

    例如

    df = pd.DataFrame({'email': ['dan@git.com', 'me@git.com']})
    print(', '.join(df['email']))
    # dan@git.com, me@git.com
    

    【讨论】:

    • 谢谢@DeepSpace,它确实工作正常。如果你不介意,你能解释一下', '.join在这里做什么吗?
    • @DanielChavarría ', '.join 是一个链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多