如何在使用 request.data 时摆脱 Python 中的“Json 文件导入错误”?

Posted

技术标签:

【中文标题】如何在使用 request.data 时摆脱 Python 中的“Json 文件导入错误”?【英文标题】:How to get rid of 'Json file Import Error' in Python while using request.data? 【发布时间】:2018-02-13 01:28:45 【问题描述】:

Json 文件导入错误 Python:我正在使用 request.data 请求 json 文件但收到以下错误:

额外数据:第 1 行第 13 列 - 第 12 行第 2 列(字符 12 - 1388)

我的 Json 文件如下所示:

"items":  
["ItemId":"1","EntityCode": "A", "Title": "abc","date":"2017-09-01",   
"ItemId":"2","EntityCode": "A", "Title": "cba","date":"2017-09-01",  
"ItemId":"3","EntityCode": "A", "Title": "bcd","date":"2017-09-01"]

这是我的输入,我将在以下代码中作为数据获得: data=request.data

我也使用https://jsonlint.com/ 来验证这个 json 但它说

错误:第 1 行解析错误:“items”:

此数据来自 java 应用程序,我该如何解决?如有更多疑问,请随时回复。

【问题讨论】:

【参考方案1】:

你应该试试

"items":  
["ItemId":"1","EntityCode": "A", "Title": "abc","date":"2017-09-01",   
"ItemId":"2","EntityCode": "A", "Title": "cba","date":"2017-09-01",  
"ItemId":"3","EntityCode": "A", "Title": "bcd","date":"2017-09-01"]

没有括号它不是一个有效的json。

您是否尝试过 request.json 而不是 request.data ?如果您无法更正 json 文件,您也可以尝试 data = "0".format(request.data)

【讨论】:

【参考方案2】:

有效的 JSON 将以花括号开头,因此您的 data=request.data 应该返回


"items": [
        "ItemId": "1",
        "EntityCode": "A",
        "Title": "abc",
        "date": "2017-09-01"
    ,
    
        "ItemId": "2",
        "EntityCode": "A",
        "Title": "cba",
        "date": "2017-09-01"
    ,
    
        "ItemId": "3",
        "EntityCode": "A",
        "Title": "bcd",
        "date": "2017-09-01"
    
]

从您在 OP 中提到的网站验证。在 JSONLint 网站上试试上面的 JSON。

【讨论】:

有没有办法在我请求数据后把它放上去。我可以在 python 中进行此更正吗? 是的,你可以简单地把它变成一本字典。如果你只想要“项目”,那么你可以像 items = 'items':request.data['items'] 那样做,但 request.data 不是已经给你字典了,或者,如果你想要来自客户端的 JSON 数据,那么你可以简单地调用 @987654325 @ 而不是 request.data 然后获取您的项目,就像您使用普通字典一样

以上是关于如何在使用 request.data 时摆脱 Python 中的“Json 文件导入错误”?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django REST 框架中修改 request.data

在 C 中使用 gtk 编写 GUI 程序时如何摆脱控制台?

在 React 中使用链接组件时如何摆脱样式

使用 iframe 时如何摆脱双滚动条?

卸载升级时如何摆脱wix中未使用的dll

如何将 request.data 转换为 dict? [复制]