[英]How to create dictionary from bytes (Python)
我試圖從API調用創建一個列表,數據就像這樣,我相信是字節。
這里沒有什么敏感的:
[{ “UDID”: “00000004324234235”, “的SerialNumber”: “SN42A32A34”, “MACADDRESS”: “00127F287220”, “IMEI”: “”, “EasId”: “443243434225346FE9”, “AssetNumber”: “”,“DeviceFriendlyName “:”00:16:7F:18:7C:B0“,”LocationGroupId“:{”Id“:{”Value“:544},”Uuid“:”364243f-97342b-4287-9333-b942442313“,”名稱 “:” LOCATION2 “},” LocationGroupName “:” LOCATION2" , “用戶ID”:{ “ID”:{ “值”:5111}, “UUID”: “364243f-97342b-4287-9333-b942442313”,”名稱“:”MDM注冊“},”UserName“:”Enroll123“,”UserEmailAddress“:”enroll123@nitro.com“,”所有權“:”C“,”PlatformId“:{”Id“:{”Value“ :10},“名稱”:“PalmPhone”},“平台”:“PalmPhone”,“ModelId”:{“Id”:{“Value”:44},“名稱”:“PalmPhone - X101Nitro”},“型號“:”PalmPhone - X101Nitro“,”OperatingSystem“:”1.7.44444“,”PhoneNumber“:”“,”LastSeen“:”2018-11-11T07:46:57.257“,”EnrollmentStatus“:”已注冊“, “ComplianceStatus”: “合規”, “CompromisedStatus”:假的, “LastEnrolledOn”: “2018-11-09T18:26:03.610”, “LastComplianceCheckOn”: “0001-01-01T00:00:00.000”, “LastCompromisedCheckOn”: “2018-06-13T19:28:22.933”, “IsSupervised”:假的,“d eviceMCC “:{” SIMMCC “:” “ ”CurrentMCC“: ”“}, ”虛擬存儲器“:0 ”IsDeviceDNDEnabled“:假 ”IsDeviceLocatorEnabled“:假 ”IsCloudBackupEnabled“:假 ”IsActivationLockEnabled“:假” IsNetworkTethered “:假” IsRoaming “:假” SystemIntegrityProtectionEnabled “:假” ProcessorArchitecture用於 “:0,” ID “:{” 值 “:140},” UUID “:” 364243f97342b42879333-b942442313" },
然后它以相同的格式重復不同的數據。 我嘗試過(ast.literal_eval(b"myList"))
(myList是包含上述所有內容的變量)。
有任何想法嗎?
如果返回的字符串是有效的json,您可以像這樣處理它:
import json
x = json.loads(myList)
然后, x
將包含API調用返回的字典列表。
ast.literal_eval(myList)
也應該ast.literal_eval(myList)
- 如果myList實際上是你指定的bytes
類型,請嘗試ast.literal_eval(myList.decode('UTF-8'))
你的API返回的問題是,它是一個列表,第一個元素的字典包含一些字段為“false”,但它們沒有用“”作為字符串封裝,而python只識別“False”,大寫字母F 。
所以你應該首先將響應轉換為文本,然后將false
替換為False
,最后一點使用json.loads在代碼上使用Json :(其中api_return
是你收到的)
response = str(api_return[0])
response.replace("false", "False")
response_json = json.loads(response)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.