python - 如何在python中处理不规则的json文件以获取CSV中的序列化值?

标签 python json csv

{\n      \"1 & 1 Internet\": {\n        \"category\": \"Infrastructure\",\n        \"xyz\": 55,\n        \"abc\": \"low\"\n      },\n      \"1 website hosting\": {\n        \"category\": \"Infrastructure\",\n        \"xyz\": 0,\n        \"abc\": \"poor\"\n      },\n      \"10000ft\": {\n        \"category\": \"Collaboration\",\n        \"xyz\": 48,\n        \"abc\": \"poor\"\n      },\n      \"1010data\": {\n        \"category\": \"Big Data\",\n        \"xyz\": 56,\n        \"abc\": \"low\"\n      },\n      \"101domains\": {\n        \"category\": \"Infrastructure\",\n        \"xyz\": 0,\n        \"abc\": \"poor\"\n      },\n      \"111WebHost.com\": {\n        \"category\": \"Infrastructure\",\n        \"xyz\": 6,\n        \"abc\": \"poor\"\n      },\n      \"11Giraffes\": {\n        \"category\": \"Web Design\",\n        \"xyz\": 0,\n        \"abc\": \"poor\"\n      },\n      \"123 FlashChat\": {\n        \"category\": \"Collaboration\",\n        \"xyz\": 64,\n        \"abc\": \"medium\"\n      },\n      \"123-Hosts\": {\n        \"category\": \"Web Design & Infrastructure\",\n        \"xyz\": 0,\n        \"abc\": \"poor\"\n      },\n      \"123-reg\": {\n        \"category\": \"Web Design & Infrastructure\",\n        \"xyz\": 52,\n        \"abc\": \"low\"\n      },\n      \"123ContactForm\": {\n        \"category\": \"Survey Solutions\",\n        \"xyz\": 43,\n        \"abc\": \"poor\"\n      },\n      \"123LandLord\": {\n        \"category\": \"Asset Management\",\n        \"xyz\": 18,\n        \"abc\": \"poor\"\n      },\n      \"123connect\": {\n        \"category\": \"Infrastructure\",\n        \"xyz\": 8,\n        \"abc\": \"poor\"\n      },\n      \"15Five\": {\n        \"category\": \"Telecom\",\n        \"xyz\": 49,\n        \"abc\": \"poor\"\n      },\n      \"15MinuteServers\": {\n        \"category\": \"Infrastructure\",\n        \"xyz\": 13,\n        \"abc\": \"poor\"\n      },\n      \"1ShoppingCart\": {\n        \"category\": \"Software Development\",\n        \"xyz\": 27,\n        \"abc\": \"poor\"\n      },\n      \"1Web Hosting\": {\n        \"category\": \"Infrastructure\",\n        \"xyz\": 3,\n        \"abc\": \"poor\"\n      },\n      \"1st Domains\": {\n        \"category\": \"Infrastructure\",\n        \"xyz\": 19,\n        \"abc\": \"poor\"\n      },\n      \"1st Easy\": {\n        \"category\": \"Infrastructure\",\n        \"xyz\": 51,\n        \"abc\": \"low\"\n      },\n      \"1st4webshops\": {\n        \"category\": \"Infrastructure\",\n        \"xyz\": 12,\n        \"abc\": \"poor\"\n      },\n      \"1stDNS Limited\": {\n        \"category\": \"Infrastructure\",\n        \"xyz\": 0,\n        \"abc\": \"poor\"\n      },\n      \"1time\": {\n        \"category\": \"Expense Management\",\n        \"xyz\": 12,\n        \"abc\": \"poor\"\n      },\n      \"2001 Web\": {\n        \"category\": \"Web Design & Infrastructure\",\n        \"xyz\": 24,\n        \"abc\": \"poor\"\n      },\n      \"23Video\": {\n        \"category\": \"Content Management\",\n        \"xyz\": 31,\n        \"abc\": \"poor\"\n      },\n      \"24 Seven Office\": {\n        \"category\": \"Enterprise Resource Planning\",\n        \"xyz\": 14,\n        \"abc\": \"poor\"\n      }

输出:

1 & 1 互联网、基础设施、55、低

1 网站托管,基础设施,0,差

......................................

......................................

上述文件依此类推

最佳答案

Python 2.7.8 (default, Oct 20 2014, 15:05:19) 
>>> data = """{\n      \"1 & 1 Internet\": {
...              \n        \"category\": \"Infrastructure\",
...              \n        \"xyz\": 55,
...              \n        \"ABC\": \"low\"
...              \n      },
...   \n      \"1 website hosting\": {
...              \n        \"category\": \"Infrastructure\",
...              \n        \"xyz\": 0,
...              \n        \"ABC\": \"poor\"
...              \n      },
...   \n      \"10000ft\": {
...              \n        \"category\": \"Collaboration\",
...              \n        \"xyz\": 48,
...              \n        \"ABC\": \"poor\"\n
... }"""
>>> import json
>>> json.loads(data)
...
ValueError: Expecting object: line 30 column 1 (char 489)

缺少右大括号:

>>> data = json.loads(data+'}')
>>> for key, value in data.iteritems():
...     print key, value['category'], value['xyz'], value['ABC']
... 
1 & 1 Internet Infrastructure 55 low
10000ft Collaboration 48 poor
1 website hosting Infrastructure 0 poor

关于python - 如何在python中处理不规则的json文件以获取CSV中的序列化值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30884493/

相关文章:

python - 让 Python 打印一天中的小时数

javascript - 在一行中识别的变量在两行后就无法识别

mysql - JSON 响应的日期时间发生变化

javascript - JavaScript 的对象字面量和在控制台登录时显示为已命名的对象之间有什么区别?

python - 从列表中随机抽取元素数据

python - 创建 celery 任务的不同方法之间的区别

python - 在python二叉树结构中创建根节点

python - csv 数据的 Pandas 绘图失败

python - Insert 语句不适用于数据类型不匹配的情况

c# - 如何使用csvHelper读取csv文件中的第二行