簡體   English   中英

在Python中將JSON字符串列表轉換為JSON數組

[英]Converting a JSON strings list to a JSON array in Python

將此列表包含兩個JSON strings

myJSONStringList = ['{"user": "testuser", "data": {"version": 1, "timestamp": "2018-04-03T09:23:43.388Z"}, "group": "33"}',
'{"user": "otheruser", "data": {"version": 2, "timestamp": "2018-04-03T09:23:43.360Z", }, "group": "44"}']

如何將其轉換為JSON數組? 這是我想要的輸出:

[{"user": "testuser", "data": {"version": 1, "timestamp": "2018-04-03T09:23:43.388Z"}, "group": "33"}, 
{"user": "otheruser", "data": {"version": 2, "timestamp": "2018-04-03T09:23:43.360Z", }, "group": "44"}]

我知道我可以通過執行myJSONStringList.replace("'", "")來做一個骯臟的解決方案,但是通過使用例如json模塊,是否有任何pythonic解決方案?

提前致謝

將JSON字符串解碼為dicts並將它們放入列表中,最后將列表轉換為JSON

json_list = []
json_list.append(json.loads(JSON_STRING))
json.dumps(json_list)

或更多pythonic語法

output_list = json.dumps([json.loads(JSON_STRING) for JSON_STRING in JSON_STRING_LIST])

使用json.dumps之前json.loads將數據轉換成字典對象這也有助於防止valueError: Expecting property name enclosed in double quotes

例如:

import json
myJSONStringList = ['{"user": "testuser", "data": {"version": 1, "timestamp": "2018-04-03T09:23:43.388Z"}, "group": "33"}',
'{"user": "otheruser", "data": {"version": 2, "timestamp": "2018-04-03T09:23:43.360Z", }, "group": "44"}']

print([json.loads(json.dumps(i)) for i in myJSONStringList])

輸出:

[u'{"user": "testuser", "data": {"version": 1, "timestamp": "2018-04-03T09:23:43.388Z"}, "group": "33"}', u'{"user": "otheruser", "data": {"version": 2, "timestamp": "2018-04-03T09:23:43.360Z", }, "group": "44"}']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM