pythonjson.loads<类型'异常值错误'>(需要属性名:第1行第3列(char 2))

2024-06-10 08:36:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个pythoncgi脚本,它将接受JSON字符串作为输入,然后处理它。在测试它时,我不断抛出ValueErrors,我不知道为什么。在

下面是一个片段来说明这个问题:

import json, pprint
a = """[{u'airline': u'JYX',
  u'arrivaltime': u'2018-02-23 12:33:00.0',
  u'departuretime': u'2018-02-23 09:21:00.0',
  u'flightno': u'XX1021',
  u'fltdate': u'2018-02-23',
  u'fltdest': u'ZYHB',
  u'fltdest_iata': None,
  u'fltid': u'1035783',
  u'fltori': u'ZSWZ',
  u'fltori_iata': None,
  u'in_timestamp': u'2018-02-23 12:40:00.0',
  u'msid': u'INRP',
  u'out_timestamp': u'2018-02-23 09:09:00.0',
  u'tail': u'B-XXXX'},
 {u'airline': u'JYX',
  u'arrivaltime': u'2018-02-23 23:57:00.0',
  u'departuretime': u'2018-02-23 20:42:00.0',
  u'flightno': u'XX1022',
  u'fltdate': u'2018-02-23',
  u'fltdest': u'ZSWZ',
  u'fltdest_iata': None,
  u'fltid': u'1036068',
  u'fltori': u'ZYHB',
  u'fltori_iata': None,
  u'in_timestamp': None,
  u'msid': u'ONRP',
  u'out_timestamp': u'2018-02-23 20:37:00.0',
  u'tail': u'B-YYYY'}]"""

b = json.loads(a)
print "A:"
pprint.pprint(a)
print "B:"
pprint.pprint(b)

应为char(预期值1)列名称I运行时出现错误

回溯:

^{pr2}$

我已经通过一个在线验证器传递了JSON,所以我有点不知所措,到底是什么原因导致JSON在这些数据上呕吐。如有任何建议,我们将不胜感激。在


Tags: nonejsontimestamppprintiatadeparturetimearrivaltimeairline
2条回答

这不是有效的JSON。在

u'string'和{}是python字符串表示,而不是JSON表示。在

试试这个尺寸:

import json, pprint                                                                                                                                                                                        
a = """                                                                                                                                                                                                    
[                                                                                                                                                                                                          
 {"airline": "JYX",                                                                                                                                                                                        
  "arrivaltime": "2018-02-23 12:33:00.0",                                                                                                                                                                  
  "departuretime": "2018-02-23 09:21:00.0",                                                                                                                                                                
  "flightno": "XX1021",                                                                                                                                                                                    
  "fltdate": "2018-02-23",                                                                                                                                                                                 
  "fltdest": "ZYHB",                                                                                                                                                                                       
  "fltdest_iata": "",                                                                                                                                                                                      
  "fltid": "1035783",                                                                                                                                                                                      
  "fltori": "ZSWZ",                                                                                                                                                                                        
  "fltori_iata": "",                                                                                                                                                                                       
  "in_timestamp": "2018-02-23 12:40:00.0",                                                                                                                                                                 
  "msid": "INRP",                                                                                                                                                                                          
  "out_timestamp": "2018-02-23 09:09:00.0",                                                                                                                                                                
  "tail": "B-XXXX"},                                                                                                                                                                                       
 {"airline": "JYX",                                                                                                                                                                                        
  "arrivaltime": "2018-02-23 23:57:00.0",                                                                                                                                                                  
  "departuretime": "2018-02-23 20:42:00.0",                                                                                                                                                                
  "flightno": "XX1022",                                                                                                                                                                                    
  "fltdate": "2018-02-23",                                                                                                                                                                                 
  "fltdest": "ZSWZ",                                                                                                                                                                                       
  "fltdest_iata": "",                                                                                                                                                                                      
  "fltid": "1036068",                                                                                                                                                                                      
  "fltori": "ZYHB",                                                                                                                                                                                        
  "fltori_iata": "",                                                                                                                                                                                       
  "in_timestamp": "",                                                                                                                                                                                      
  "msid": "ONRP",                                                                                                                                                                                          
  "out_timestamp": "2018-02-23 20:37:00.0",                                                                                                                                                                
  "tail": "B-YYYY"}]                                                                                                                                                                                       
"""                                                                                                                                                                                                        

b = json.loads(a)                                                                                                                                                                                          
print "A:"                                                                                                                                                                                                 
pprint.pprint(a)                                                                                                                                                                                           
print "B:"                                                                                                                                                                                                 
pprint.pprint(b)   

这就是JSON模块存在的原因。在

如果您的数据确实是这样结构的,请尝试使用ast模块中的literal_eval。它将以安全(ish)的方式将python代码作为数据进行评估。在

单引号在JSON中无效。字符串和键需要使用双引号。在

相关问题 更多 >