【问题标题】:Python only the last string is outputPython只输出最后一个字符串
【发布时间】:2022-07-06 21:29:40
【问题描述】:

在创建 json 文件时,可能会输出多个文本。但是,只输出最后一个。 text 是一个字符串,不能像数组一样附加。它总是被覆盖,所以我的问题是如何获得每个文本输出?

下面的代码获取每个文本并将其保存到变量“text”中。 在self.curr_data['items'][-1]['text'] 中会显示数据。

if self.headline == "Verbindungsentgelte":
    if unedifact.EdiValue.getComponents(segment, 2):
        text = unedifact.EdiValue.getComponents(segment, 2)
        self.curr_data['items'][-1]['text'] = text

json 文件如下所示:

"headline": "Verbindungsentgelte",
"text": "Frei",
"qty-piece": 22,
"start": "20220201",
"end": "20220228",
"tax": 20

但需要看起来像:

"headline": "Verbindungsentgelte",
"text": "SMS gesendet",
        "Österreich",
        "Mobil Voice Flat Corp",
        "Frei",
"qty-piece": 22,
"start": "20220201",
"end": "20220228",
"tax": 20

【问题讨论】:

  • 只有我还是您缺少一些 { } 括号?
  • 我已经缩短了 json 文件,否则它会太大
  • 你可以连接像self.curr_data['items'][-1]['text'] += text这样的字符串
  • 您“需要看起来像”不是有效的 JSON...您希望 text 最终成为一个大字符串还是字符串列表?

标签: python arrays json string


【解决方案1】:

首先,Json 中的text 不是列表。所以你不能有多个值。所以,我假设,你想要这样的东西-

"headline": "Verbindungsentgelte",
"text": ["SMS gesendet",
        "Österreich",
        "Mobil Voice Flat Corp",
        "Frei"],
"qty-piece": 22,
"start": "20220201",
"end": "20220228",
"tax": 20

如果您的 json 格式正确,并且您可以在 text 键中有一个列表,那么剩下的就很简单了。 self.curr_data['items'][-1]['text'] = text 变为 self.curr_data['items'][-1]['text'].append(text)

在这种情况下,您的代码将如下所示-

if self.headline == "Verbindungsentgelte":
    if unedifact.EdiValue.getComponents(segment, 2):
        text = unedifact.EdiValue.getComponents(segment, 2)
        self.curr_data['items'][-1]['text'].append(text)

【讨论】:

    猜你喜欢
    • 2022-10-01
    • 2017-01-26
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    相关资源
    最近更新 更多