我有一个json文件,根据json linter是有效的,如下所示:
[{
"Device": {
"BNCode": "BN2003612",
"DeviceID": 3700,
"ModelName": "2004c",
"VariantName": "2004c",
"supplier": {
"SupplierCode": "ALCATEL",
"SupplierID": 3,
"SupplierName": "Alcatel",
"created_at": "2019-08-14T14:47:00",
"last_updated_by": "",
"updated_at": "2019-08-14T14:47:00"
}
},
"MarketPlayer": {
"DetailedMarketPlayer": "WestCom",
"MarketPlayerID": 3968,
"MarketPlayerName": "Amazon"
},
"PriceUrl": "",
"Sales_Price": {
"CurrencyCode": "EUR",
"EUR": 6.658333333333334e+001,
"local_currency": 6.658333333333334e+001
},
"ScreenshotUrl": "",
"Source": "OFFICIENCE",
"TimeStamp": "Date"
}, {
"Device": {
"BNCode": "BN2003833",
"DeviceID": 3800,
"ModelName": "Nokia 130",
"VariantName": "Nokia 130 8MB LTE DS",
"supplier": {
"SupplierCode": "HMD",
"SupplierID": 45,
"SupplierName": "Hmd",
"created_at": "2019-08-14T14:47:00",
"last_updated_by": "",
"updated_at": "2019-08-14T14:47:00"
}
},
"MarketPlayer": {
"DetailedMarketPlayer": "MediaMarkt",
"MarketPlayerID": 3815,
"MarketPlayerName": "MediaMarkt"
},
"PriceUrl": "",
"Sales_Price": {
"CurrencyCode": "EUR",
"EUR": 2.665833333333333e+001,
"local_currency": 2.665833333333333e+001
},
"ScreenshotUrl": "",
"Source": "OFFICIENCE",
"TimeStamp": "Date"
}]
要将json文件导入python,我使用以下代码:
^{pr2}$我得到了错误:JSONDecodeError:期望值:行1列1(char 0)。在
当我使用json.loads函数我得到错误:TypeError:JSON对象必须是str、bytes或bytearray,而不是TextIOWrapper。在
编辑:我想我注意到,当将数据从文件直接复制到这里并将其格式化为代码时,JSON正在“修复”。所以你们不能重现我的错误。我附上了这张图片的代码实际是什么样子,似乎有更多的空白,我认为这是导致问题,所以任何关于如何修复它的想法都是受欢迎的。
链接到文件:https://file.io/yKw7tp
如果您正在使用上面的
prices_json.txt
文件,那么您应该可以让它正常工作。我已经测试过了,它正在工作。看这个repl。在您还可以尝试将完整的文件作为字符串传递给
json.loads()
方法,将其转换为json对象。在编辑
问题的真正原因是文件本身。当我试图使用
^{pr2}$f.read()
打印它时,它给出了如下输出:您需要在打开文件时使用
utf-16
作为编码参数来解决问题。在使用
json.loads
方法:使用
json.load
方法相关问题 更多 >
编程相关推荐