我有一个纬度/经度的JSON文件,我想要转换为CSV文件.我想用Python做到这一点.我已阅读/尝试了所有其他stackoverflow和谷歌搜索结果的建议.我已经设法创建了CSV并包含标题,但除此之外,愚蠢的东西开始发生.到目前为止,这是我的代码的工作部分:
import json, csv
x="""[
{"longitude":"-73.689070","latitude":"40.718000"},
{"longitude":"-73.688400","latitude":"40.715990"},
{"longitude":"-73.688340","latitude":"40.715790"},
{"longitude":"-73.688370","latitude":"40.715500"},
{"longitude":"-73.688490","latitude":"40.715030"},
{"longitude":"-73.688810","latitude":"40.714370"},
{"longitude":"-73.688980","latitude":"40.714080"},
{"longitude":"-73.689350","latitude":"40.713390"},
{"longitude":"-73.689530","latitude":"40.712800"},
{"longitude":"-73.689740","latitude":"40.712050"},
{"longitude":"-73.689820","latitude":"40.711810"},
{"longitude":"-73.689930","latitude":"40.711380"},
{"longitude":"-73.690110","latitude":"40.710710"}
]"""
x = json.loads(x)
f = csv.writer(open("test.csv", "wb+"))
f.writerow(["longitude", "latitude"])
Run Code Online (Sandbox Code Playgroud)
它在哪里崩溃("?"意味着我不知道该放在那里.我已经尝试了各种各样的组合,我在寻找答案时发现了这些组合):
for ? in ?:
f.writerow([?[?],?[?]])
Run Code Online (Sandbox Code Playgroud)
我从little_fish得到了上述问题的答案.我可以看到我们的JSON示例略有不同,我认为这与我无法使其工作的原因有关...
任何帮助将不胜感激,如果需要,我很乐意提供澄清.仅供参考,我是Python的新手,所以如果你要使用行话,请尽可能清楚地解释.谢谢!(PS不确定是否重要,但我使用的是IDLE).
以下是我安装 Jupyter Lab 和 Git 扩展的步骤,然后尝试解决扩展版本不匹配问题:
规格:MacOS Mojave 10.14.6,Jupyter Lab 3.0.5
1.我安装了 Jupyter Lab 使用pip3 install jupyterlab
2.我直接从 Jupyter Lab 的 Widgets Manager 安装了 Jupyter Lab Git 扩展:
3.这样做之后,我收到了额外的指示:
4.我点击“确定”然后运行
pip3 install jupyterlab-git
5.回到 Jupyter Lab,它说需要构建以包含最新更改,所以我选择了“重建”
7.重新加载后,我收到以下消息:
8.我按照说明跑了
pip3 install --upgrade jupyterlab-git
9.我回到 Jupyter Lab 并单击消息上的“关闭”。
10.我通过终端关闭并重新打开了 Jupyter Lab。重新打开后,出现同样的“加载失败”消息。
11.然后我发现这个链接解决了一个类似的问题。
12.我按照建议运行以下所有命令(使用 pip3,并修复拼写错误):
13.用户然后建议以下以确保一切正常。所以我再次关闭了 Jupyter Lab,并运行了以下所有内容:
14.运行jupyter serverextension list
我得到以下,我 …
我试图从一个主列表创建几个新列表,其中新列表包含主列表中的类似项目.具体来说,我有一份巴士路线清单.这是一个示例数据集:
[u'Bus04_00_00_IB_pts_Line', u'Bus04_00_00_OB_pts_Line', u'Bus15_00_00_IB_pts_Line', u'Bus15_00_00_OB_pts_Line']
Run Code Online (Sandbox Code Playgroud)
大多数公交线路有一个入站(IB)和一个出站(OB)项目(有些有多个IB和OB,有些只有一条路由,b/c它们是循环路由).最后,我想在地图软件中合并IB和OB路线(我已经知道该怎么做)......
我最初创建了文件名,因此前5个字符代表总线路径,无论它是IB还是OB.因此,我可以根据前5个字符对相似的项目进行分组.例如,当我写:
for route in routes:
print route[0:5]
Run Code Online (Sandbox Code Playgroud)
我明白了:
>>>
Bus04
Bus04
Bus15
Bus15
Run Code Online (Sandbox Code Playgroud)
我怎样才能"团",涉及到的文件Bus04
和Bus04
,和Bus15
和Bus15
成新的列表,这样,我得到:
[u'Bus04_00_00_IB_pts_Line', u'Bus04_00_00_OB_pts_Line']
并[u'Bus15_00_00_IB_pts_Line', u'Bus15_00_00_OB_pts_Line']
作为单独的名单?
我正在考虑循环遍历每个项目的内容,查看每个项目的前五个字符,然后创建一个新列表,每个新的五个字符项出现(并将该项添加到新列表)或检查是否列表已存在并将类似项附加到其中.
我很难在代码中写出来,所以非常感谢任何帮助!