json_normalize提供ValueError,需要区分前缀

时间:2017-10-13 13:58:57

标签: python json pandas

我想使用pandas和json_normalize在python中规范化JSON数据。 以下代码中的第33行工作正常。在第36行,我将最后一个元素更改为' number'并收到以下错误消息:

ValueError: 'number' is not in list

我认为这是因为项目编号'与熊猫的内部变量相冲突。所以我需要重命名所有号码'项目到其他东西。

我在第一种方法中尝试使用下面第28行中的代码 - 但我收到错误消息:

import pandas

from pandas.io.json import json_normalize

data = [{'address': {
                  'city': 'city A',
                  'company_name': 'company A'},
        'amount': 998,
        'items': [{'description': 'desc A1','number': 'number A1'}],
        'number': 'number of A',
        'service_date': {
                      'type': 'DEFAULT',
                      'date': '2015-11-18'},
        'vat_option': 123},
        {'address': {
                  'city': 'city B',
                  'company_name': 'company B'},
       'amount': 222,
       'items': [{'description': 'desc B1','number': 'number B1'},
                 {'description': 'desc B2','number': 'number B2'}],
       'number': 'number of B',
       'service_date': {
                     'type': 'DEFAULT',
                     'date': '2015-11-18'},
       'vat_option': 456}
       ]

data[data.index("number")] = "numbr"

print data

# working
#print json_normalize(data, 'items', [['address','city'],     ['address','company_name'], 'amount'])

# not working
#print json_normalize(data, 'items', [['address','city'], ['address','company_name'], 'numbr'])

很抱歉,但我对python完全不熟悉 - 我做错了什么?

谢谢!

document.data.toObject(DataClass::class.java)

1 个答案:

答案 0 :(得分:0)

得到它 - “数字”似乎是不允许与熊猫。将所有密钥更改为例如“numbr”解决了这个问题:

eval(repr(data).replace("number", "numbr"))

感谢stackoverflow 46734293