python - 如何使用python将垂直管道作为分隔符的JSON数组中的两个不同数据分开
问题描述
下面是我在 2 行不同的示例 json 字符串
{""creditNoteId"":""BSA11130181-S7"",""creditNoteUrl"":""www.twitir.com""}
{""creditNoteId"":""BSA11130181-S8"",""creditNoteUrl"":""www.googol.com""}|{""creditNoteId"":""BSA11130181-S9"",""creditNoteUrl"":""www.fesbuuk.com""}
我对第一行没有问题,但在第二行中,它以垂直管道作为分隔符,它给了我错误
我想像下面这样打印它们
BSA11130181-S7 www.twitir.com
BSA11130181-S8 www.googol.com
BSA11130181-S9 www.fesbuuk.com
目前我有以下错误
raise JSONDecodeError("Extra data", s, end)
使用下面的python代码
a = credit_note
y = json.loads(a)
for x in y:
print(y["creditNoteId"], y["creditNoteUrl"])
解决方案
import json
d1 = '{"creditNoteId":"BSA11130181-S7","creditNoteUrl":"www.twitir.com"}'
d2 = '{"creditNoteId":"BSA11130181-S8","creditNoteUrl":"www.googol.com"}|{"creditNoteId":"BSA11130181-S9","creditNoteUrl":"www.fesbuuk.com"}'
d2 = d2.replace('|',',') # point 1
d3 = '[{' + d2[1:-1:] + '}]' # point 2
y = json.loads(d3)
for x in y:
print(x["creditNoteId"], x["creditNoteUrl"])
此代码将为您工作..
- 替换 | 和 ,
- 用 [{ 和 ]} 替换第一个和最后一个大括号,使其成为有效的 JSON 对象。
- 还要确保 d1 和 d2 是上面代码中发布的字符串,因为 json.loads 需要一个字符串参数。
推荐阅读
- google-colaboratory - 如何在 colab hostruntime 中直接运行 x11-apps(xeyes, glxgears)?
- html - 调整页面大小时让我的 h1 保持原位?
- flutter - 是否可以插入小部件列表而无需定义方法或属性?
- r - 从 Github 加载函数到 R Studio
- delphi - 如何在过程/函数标题和主代码之间导航
- phpexcel - 将数组插入到phpexcel中的单个单元格中
- multithreading - 当我在 kubernetes 中使用低于 1000m cpu 请求时,同一容器中的多个线程可以同时使用多个内核并行运行吗?
- google-cloud-platform - GCP 端口 80 连接被拒绝问题:
拒绝连接 - sql - 何时选择 rank() 而不是 dense_rank() 或 row_number()
- h2 - h2堆外存储的限制是什么?数据存储在哪里?