【问题标题】:Parsing json string into dataframe将json字符串解析为数据框
【发布时间】:2018-07-12 00:13:51
【问题描述】:

我有一个嵌套的json字符串如下:

[{'id': 'tfghnbkivbgdcse',
  'authorization': None,
  'operation_type': 'in',
  'card': {'type': 'debit',
   'brand': 'mastercard',
   'address': None,
   'card_number': '123456XXXXXX7890',
   'holder_name': 'aaaa bbbb’,
   'expiration_year': '21',
   'expiration_month': '11',
   'bank_name': 'XXXXBANK',
   'bank_code': '000'},
  'status': 'failed',
  'creation_date': '2018-06-30T23:59:16-05:00',
  'error_message': 'Bank authorization is required for this charge',
  'order_id': '1743790',
  'amount': 2668.0,
  'currency': 'USD',
  'customer': {'name': 'AAAA',
   'last_name': 'BBBB',
   'email': 'XXXX_1234@outlook.com',
   'phone_number': '1234567890',
   'address': None,
   'creation_date': '2018-06-30T23:59:17-05:00',
   'external_id': None,
   'clabe': None},
  'fee': {'amount': 0.95, 'tax': 0.152, 'currency': 'USD'}}]

我想将 json 字符串转换成数据框。我使用了来自pandas.io.jsonjson_normalize,但出现错误。

【问题讨论】:

  • 可能是因为 None 是 JSON 格式的无效类型?
  • 那不是 JSON

标签: python json pandas dataframe


【解决方案1】:

如果您满足以下条件,它会起作用:

  • 将所有“无”更改为“无”
  • 更改'aaaa bbbb’ to 'aaaa bbbb'(最后一个字符是不同的单引号字符)
  • 将所有 更改为

如果 json 数据是 python 代码的一部分,它可能只是您需要修复的引号字符。

In [39]: ord("'")
Out[39]: 39
In [40]: ord("’")
Out[40]: 8217

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    相关资源
    最近更新 更多