簡體   English   中英

JSON - 字符串值轉換為列表

[英]JSON - string value conversion to List

用於從 JSON 中提取的代碼

import json
string = json.loads(data)
string['Body']

import base64
base64.b64decode(string['Body'])

bytes_data = base64.b64decode(string['Body'])
str(bytes_data, encoding='utf-8')

我有從 JSON 中提取的以下格式

"[{"id":"XXXX_U2_170216:XXXX_U2_170216:FBE_23015.Air","values":[{"v":"46","q":192,"t":"2021-10-28T13:47:59.7880096Z"}]},
{"id":"XXXX_U2_170216:XXXX_U2_170216:FBE_23015.Atomise","values":[{"v":"3.1","q":192,"t":"2021-10-28T13:47:59.7880096Z"}]}]"

關於將其轉換為實際列表的任何想法

[{"id":"XXXX_U2_170216:XXXX_U2_170216:FBE_23015.Air","values":[{"v":"46","q":192,"t":"2021-10-28T13:47:59.7880096Z"}]},
{"id":"XXXX_U2_170216:XXXX_U2_170216:FBE_23015.Atomise","values":[{"v":"3.1","q":192,"t":"2021-10-28T13:47:59.7880096Z"}]}]

我嘗試過的事情:

list(bytearray(bytes_data))

for 循環 - 對於這個 output 字符串,但這是一種復雜的方法。
更多轉換的東西。 尋找緊湊的東西。

像這樣使用 json 加載方法,假設您有 JSON 數組並想在 LIST 中轉換然后執行以下操作

import json
array = '{"Items": ["IPhone", "Earphone", "Powerbackup"]}'
data  = json.loads(array)
print (data['Items'])

逆向工程你的問題....

給定帶有 base64 數據的 JSON 文件

$ cat /tmp/data.json
{
  "Body": "W3siaWQiOiJYWFhYX1UyXzE3MDIxNjpYWFhYX1UyXzE3MDIxNjpGQkVfMjMwMTUuQWlyIiwidmFsdWVzIjpbeyJ2IjoiNDYiLCJxIjoxOTIsInQiOiIyMDIxLTEwLTI4VDEzOjQ3OjU5Ljc4ODAwOTZaIn1dfSwKeyJpZCI6IlhYWFhfVTJfMTcwMjE2OlhYWFhfVTJfMTcwMjE2OkZCRV8yMzAxNS5BdG9taXNlIiwidmFsdWVzIjpbeyJ2IjoiMy4xIiwicSI6MTkyLCJ0IjoiMjAyMS0xMC0yOFQxMzo0Nzo1OS43ODgwMDk2WiJ9XX1dCg=="
}

讀取和提取

import json
import base64
with open('/tmp/data.json') as f:
    string = json.load(f)
body = string['Body']

然后解碼...返回一個列表

import pprint

l = json.loads(base64.b64decode(body)
pprint.pprint(l)
[{'id': 'XXXX_U2_170216:XXXX_U2_170216:FBE_23015.Air',
  'values': [{'v': '46', 'q': 192, 't': '2021-10-28T13:47:59.7880096Z'}]},
 {'id': 'XXXX_U2_170216:XXXX_U2_170216:FBE_23015.Atomise',
  'values': [{'v': '3.1', 'q': 192, 't': '2021-10-28T13:47:59.7880096Z'}]}]

使用內置json模塊:

import json
data = json.loads(bytes_data)

好像你在 json 中有一個 json,所以加載它兩次:

import json
import base64

string = json.loads(data)
bytes_data = base64.b64decode(string['Body'])
output = json.loads(bytes_data)

暫無
暫無

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

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