【问题标题】:ijson.common.IncompleteJSONError: lexical error: invalid char in json textijson.common.IncompleteJSONError:词法错误:json 文本中的无效字符
【发布时间】:2021-04-21 23:34:33
【问题描述】:

大家好,ijson 新手,我有一个非常大的 .json 文件 168 (GB) 我想获取所有可能的键,但在文件中一些值被写为 NaN。 ijson 在我的代码值中创建一个生成器并输出字典。返回特定项目时,会引发错误。如何获取字符串而不是字典而不是值?尝试过 **parser = ijson.items (input_file, '', multiple_values = True, map_type = str) **,没有帮助。

def parse_json(json_filename):
    with open('max_data_error.txt', 'w') as outfile:
        with open(json_filename, 'r') as input_file:'''


            # outfile.write('[ '
            parser = ijson.items(input_file, '', multiple_values=True)
            cont = 0
            max_keys_list = list()
            for value in parser:
                for i in json.loads(json.dumps(value, ensure_ascii=False, default=str)) :
                    if i not in max_keys_list:
                        max_keys_list.append(i)
                        print(value)
                        print(max_keys_list)

            for keys_item in max_keys_list:
                outfile.write(keys_item + '\n')


if __name__ == '__main__':
    parse_json('./email/emailrecords.bson.json')
Traceback (most recent call last):
  File "panda read.py", line 29, in <module>
    parse_json('./email/emailrecords.bson.json')
  File "panda read.py", line 17, in parse_json
    for value in parser:
ijson.common.IncompleteJSONError: lexical error: invalid char in json text.
          litecashwire.com","lastname":NaN,"firstname":"Mia","zip":"87
                     (right here) ------^

【问题讨论】:

    标签: ijson


    【解决方案1】:

    您的文件我的 JSON 无效(NaN 不是有效的 JSON 值);因此,任何 JSON 解析库都会以一种或另一种方式抱怨这一点,除非它们具有处理这种非标准内容的扩展。

    在项目描述中找到的 ijson FAQ 有一个关于无效 UTF-8 字符以及如何处理它们的问题。这些相同的答案在这里也适用,所以我建议你去尝试其中一个。

    【讨论】:

      猜你喜欢
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 2017-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多